Properties

屬性

Properties

大多數程式設計師都有在類別設計過加入一些私有成員(private),再為每一個私有成員加上一對Get/Set method的情境。

而屬性就是為程式設計師,提供一個相對簡單的方式來呈現此功能。

傳統的Get/Set method

public class Dog
{
    private string _name;

    // Get method
    public string GetName() 
    {
        return this._name;
    }

    //Set method
    public void SetName(string value) 
    {
        this._name = value;
    }
}

使用屬性(Property)

public class Dog
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

}

屬性的語法相當簡潔,這兩個結果是一模一樣。 C# 編譯器在編譯時,會把屬性轉換成一對Get/Set 的 mthod,

所以屬性最大的功能就是提供了一種簡便的撰寫程式方式。

 

屬性的優點

屬性的本質和方法沒有太大的區別,而在使用上又和公共成員變數一樣,那設計時是否該使用屬性呢?

.NET設計團隊加入屬性的本意並非代替方法,而是避免內部成員直接暴露在外。 由於有了屬性的存在,

設計時不再有任何理由把內部成員定義成public。任何定義需要給類別內使用的內部成員,都應該被設計成private 或者protected,

並且配上一個屬性。這樣做雖不會讓程式執行地更快更好,但是屬性相對於公共成員變數,的確提高程式的可擴充性。

底下的範例,我在Set名字前面加上private 存取修飾詞,表示我只能從此類別給予Name的值

public class Dog
{
    private string _name;

    public string Name
    {
        get { return _name; }
        private set { _name = value; }
    }
}

在C#3.0後,屬性可簡化成以下方式

public class Dog
{
    public string Name { get; set; }
}

 

 

 

一天一分享,身體好健康。

該追究的不是過去的原因,而是現在的目的。