1. 程式人生 > >C# 帶後備欄位的屬性和不帶後備欄位的屬性

C# 帶後備欄位的屬性和不帶後備欄位的屬性

public class Test
{
    public Test()
    {
     Date = "1";
    }
    private string dt { get; } = "1";
    public string Date
    {
       get; 
    }
}

這是一種帶後備欄位的屬性,他是自動完成的屬性,比如這個Data,他是一個自動完成的只讀屬性,可以認為內部已經預設生成了一個字串,他可以在建構函式中初始化也可以在建構函式中初始化。

 private string dt2
 {
      get { return "xxx"; }
 }

這是一個帶後備欄位的屬性,他不是自動完成的,可以認為是內部沒有為他生成一個字串,所以不能在建構函式初始化。屬性是不能按照ref或out傳遞的,因為屬性可能是虛欄位或者是隻讀或只寫的,不能按照地址傳遞。

推薦使用靜態屬性封裝靜態欄位,具有一定的封裝性。