,如果你實現自動性能關於產品:自動屬性
public string Foobar { get; set; }
,然後編寫相應的變量
private string foobar = string.Empty;
請問自動財產使用這個變量會發生什麼或做編譯器生成 附加變量?
,如果你實現自動性能關於產品:自動屬性
public string Foobar { get; set; }
,然後編寫相應的變量
private string foobar = string.Empty;
請問自動財產使用這個變量會發生什麼或做編譯器生成 附加變量?
不,自動屬性不會使用您的變量。它就像其他任何叫做foobar的字段一樣。
名稱smilarity不會以任何方式影響編譯器。
編譯器將在幕後生成一個字段,但您無法以任何方式訪問自動屬性的後臺字段。
This post顯示IL(中級Langauge,C#彙編)級別的工作情況。
爲什麼會這樣?支持領域不一定是(並且通常不是)以這種方式命名。
我的意思是,當你不使用自動屬性。所以你不應該總是把你的頭上的名字「Foobar」和「foobar」作爲「屬性 - 相應的後場」。 – Dyppl 2010-11-12 09:31:33
編譯器將不會使用該變量,否。要使用你的變量,你必須寫
private string foobar = string.Empty;
public string Foobar
{
get { return foobar; }
set { foobar = value; }
}
如果你有Resharper,你可以設置模板來做到這一點。 Resharper還會爲您使用未使用的私有變量生成一個getter。
感謝您的鏈接。 – Viper 2010-11-12 10:07:07