2010-11-12 52 views
0

,如果你實現自動性能關於產品:自動屬性

public string Foobar { get; set; } 

,然後編寫相應的變量

private string foobar = string.Empty; 

請問自動財產使用這個變量會發生什麼或做編譯器生成 附加變量?

回答

1

不,自動屬性不會使用您的變量。它就像其他任何叫做foobar的字段一樣。

名稱smilarity不會以任何方式影響編譯器。

編譯器將在幕後生成一個字段,但您無法以任何方式訪問自動屬性的後臺字段。

This post顯示IL(中級Langauge,C#彙編)級別的工作情況。

+0

感謝您的鏈接。 – Viper 2010-11-12 10:07:07

-1

爲什麼會這樣?支持領域不一定是(並且通常不是)以這種方式命名。

+0

我的意思是,當你不使用自動屬性。所以你不應該總是把你的頭上的名字「Foobar」和「foobar」作爲「屬性 - 相應的後場」。 – Dyppl 2010-11-12 09:31:33

0

編譯器將不會使用該變量,否。要使用你的變量,你必須寫

private string foobar = string.Empty; 

public string Foobar 
{ 
    get { return foobar; } 
    set { foobar = value; } 
} 

如果你有Resharper,你可以設置模板來做到這一點。 Resharper還會爲您使用未使用的私有變量生成一個getter。