Check out example codes for "c# async constructor". It will help you in understanding the concepts better.

Code Example 1

Yes, they can, but they shouldn't.

Code Example 2

public class ViewModel       
    public ObservableCollection<TData> Data { get; set; }       

    //static async method that behave like a constructor       
    async public static Task<ViewModel> BuildViewModelAsync()  
        ObservableCollection<TData> tmpData = await GetDataTask();  
        return new ViewModel(tmpData);

    // private constructor called by the async method
    private ViewModel(ObservableCollection<TData> Data)
        this.Data = Data;   

Learn ReactJs, React Native from