共用方式為


屬性 (C# 與 Java 的比較)

更新:2007 年 11 月

在 C# 中,屬性是類別、結構 (Struct) 或介面的具名成員,它提供了很好的方法來存取私用欄位,也就是透過名為 getset 的存取子方法來存取。

下列程式碼範例會為 Animal 類別宣告名為 Species 的屬性,此屬性提供名為 name 之私用變數的摘要存取:

public class Animal
{
    private string name;

    public string Species
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
}

一般而言,屬性名稱會與它所存取的內部成員名稱相同,但是第一個字母是大寫,例如上例中的 Name,或者內部成員名稱會以 _ 當做前置字元。此外,請注意用於 set 存取子中名為 value 的隱含參數,此參數具有基礎成員變數的型別。

存取子事實上在內部是以 get_X() 和 set_X() 方法表示,這是為了維護與不支援存取子之 .NET Framework 架構程式語言的相容性。屬性一旦定義後,就可以很容易取得或設定其值:

class TestAnimal
{
    static void Main()
    {
        Animal animal = new Animal();
        animal.Species = "Lion";                   // set accessor
        System.Console.WriteLine(animal.Species);  // get accessor

    }
}

只有 get 存取子的屬性是唯讀屬性。只有 set 存取子的屬性是唯寫屬性。如果屬性同時具有此二者,則是讀寫屬性。

請參閱

概念

C# 程式設計手冊

參考

屬性 (C# 程式設計手冊)

其他資源

Java 開發人員可用的 C# 程式設計語言