承 過去的問題
public string Variable { get; set; }
是以下寫法的縮寫
public string Variable
{
get { return Variable; }
set { Variable = value; }
}
想請教為何不能像下面這樣寫
public string Variable
{
get
{
return Variable;
}
set
{
Variable = string.IsNullOrWhiteSpace(value) ? "" : value.Trim().ToUpper();
}
}
而要寫成下面這樣
private string variable;
public string Variable
{
get
{
return variable;
}
set
{
variable = string.IsNullOrWhiteSpace(value) ? "" : value.Trim().ToUpper();
}
}
C# Property (get & set
)
只是一個語法糖,最終會幫你把她轉換成 Get & Set method,並用一個 field 來存放變數
下面這個語法 Variable
並不是一個 string field 所以不能這樣寫
public string Variable
{
get
{
return Variable;
}
set
{
Variable = string.IsNullOrWhiteSpace(value) ? "" : value.Trim().ToUpper();
}
}
詳細資訊請看 MSDN
延伸去了解了 public-fields-versus-automatic-properties 之前對fields跟properties不夠了解 感謝