我正在學習C#,並且正在學習如何使字段專用於類,並使用Getters和Setter來公開方法而不是字段值。速記訪問器和變異器
是1和方法2相當於get; set;
在方法?例如是另一個的簡寫嗎?
class Student
{
// Instance fields
private string name;
private int mark;
// Method 1
public string Name { get; set; }
// Method 2
public int Mark
{
get { return mark; }
set { mark = value; }
}
}
最後,就當你想例如獲取或設置一個值之前進行計算方法2使用嗎?例如將價值轉換爲百分比還是執行驗證?例如
class Student
{
// Instance fields
private string name;
private double mark;
private int maxMark = 50;
// Method 1
public string Name { get; set; }
// Method 2
public double Mark
{
get { return mark; }
set { if (mark <= maxMark) mark = value/maxMark * 100; }
}
}
看看[這個答案](http://stackoverflow.com/questions/15454470/why-arent-simple-properties-optimized-to-fields/15454538#15454538);它顯示了一些細節。 –
[C#中的自動屬性是什麼?它們的目的是什麼?](http://stackoverflow.com/questions/6001917/what-are-automatic-properties-in-c-sharp-and-what-is -their-purpose) –