可能重複:
Difference between Property and Field in C# .NET 3.5+
Why should I use an automatically implemented property instead of a field?當我可以使用一個屬性時,爲什麼我應該使用一個字段?
以下兩個例子都一模一樣,有內部和外部類相同的訪問寫道......那麼,爲什麼大家似乎使用例1與例2相同? 我確定我只是想念一些東西,但這一直在困擾着我一段時間,我一直無法找到明確的答案。
class SampleClass
{
/// Example 1
/// Shown by online examples.
/// Why use a Field AND a Property where you could just use Example 2?
private int age;
public int Age { get { return age; } }
private void setAge()
{
age = 1;
}
/// Example 2
/// Tidier code and better understanding of how Age2 can be accessed.
/// Personally I prefer this method, though am I right to use it over Example 1?
public int Age2 { get; private set; }
private void setAge2()
{
Age2 = 1;
}
}
這些重複項都不是有效的。他不問他是否應該使用字段與屬性,他問的是手動實現的屬性與自動實現的屬性。 – Servy
@OP還注意到自動實現的屬性是在C#3.0中引入的,但自C#1.0以來,屬性就已經在語言中。手動定義屬性的很多例子都是舊的代碼樣本,或者沒有(或尚未)習慣於較新語法的人。當然,也有一些情況下,你可以手動做些東西,但道具不能這樣做,但這不是你所發佈的例子。 – Servy
這可能是我最需要努力的地方,有什麼新鮮事,什麼是更好的做法?如果示例2在早期的.NET版本中不可行,並且示例1對於達到相同的效果是必需的。通過使用示例2可以讓人放心,我使用了更現代的語法,並且不會不必要地擴展示例1中的代碼。:) – Robula