簡體   English   中英

在C#中,這個帶“get”的代碼是什么意思?

[英]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; } }

然后,您創建該字符串變量的屬性。 此屬性是只讀的,然后您可以在創建此變量的類之外訪問此變量。 您無法使用此類屬性為此變量賦值。

這是一個公共的readonly 屬性 ,即:它只有一個公共get訪問器。 自動實現的屬性可以用更少的代碼實現相同的效果:

public string M { get; private set; }

此屬性格式有一個公共的get ,但私人 set CLR實際上生成了一個類似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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM