屬性
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; }
}
一天一分享,身體好健康。
該追究的不是過去的原因,而是現在的目的。