[英]In C# what does this code with “get” mean?
我是C#的新手。
private string m;
public string M { get { return m; } }
這樣的C#中的getter / setter就像Java一樣嗎?
這部分是一個領域:
private string m;
這部分是一個只讀屬性,它返回m
字段的值:
public string M { get { return m; } }
您可以將其設為讀寫屬性,如下所示:
public string M {
get { return m; }
set { m = value; }
}
或者你可以在那里有更復雜的邏輯:
public string M {
get {
if (string.IsNullOrEmpty(m))
return "m is null or empty";
return m;
}
}
基本上,字段只擅長保存,而屬性更像是方法,可以引入邏輯。
private string m;
首先,使用private修飾符創建一個新的字符串變量。 如果在課堂上這樣,那么它在本課程之外是不可見的。
public string M { get { return m; } }
然后,您創建該字符串變量的屬性。 此屬性是只讀的,然后您可以在創建此變量的類之外訪問此變量。 您無法使用此類屬性為此變量賦值。
這是一個吸氣劑。 沒有公共可訪問的setter,所以必須在類的其他地方設置m。
這是為了在C#中定義Readonly屬性,這里只有一個getter
它是m的公共getter,但它可以讓你稱它為例如變量
string s = M;
這會使s == m
這就是C#中所謂的屬性。 它被訪問就好像它是一個成員變量,但是調用了get
方法。 屬性也可以有一個set
方法,使它們可以修改。
第一行稱為字段。 它將創建一個名為m
的私有(即只能在類中訪問)成員變量。
第二行稱為屬性。 此特定屬性包裝字段m
並且是只讀的(即它具有get
但沒有set
)。
訪問C#中的屬性就像它們是字段一樣,如下所示:
obj.SomeProp = "Some value";
string val = obj.SomeProp;
但是,與獲取和設置字段相比,可以實現更復雜的屬性。 財產的主體就像一種方法。 它可以包含非平凡的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.