2010-11-09 99 views
0

C#的新手我已經在學習語言方面做了很多的閱讀,在2本完整的書籍和大量的網站文章中,我是否曾經回憶過有關關鍵字「var 「類範圍內不允許使用,但需要位於類的某個嵌套元素(即方法)內。我知道你可以用訪問修飾符和類型來聲明變量(即字符串,int ..等等)。關於使用關鍵字「Var」的範圍的問題

即使這個網站,我可以找到關於使用「var」的問題,但不是關於它的限制。

也許這對每個其他人都是如此明顯,以至於大多數作家都沒有提到這一點,而我是地球上的最後一位讀者,這並不明顯 - 有人會如此善意地解釋背後的原因嗎?

NOT ALLOWED例

public class SomeClass 
{ 
    var SomeVariable = new SomeClass(); 
} 

允許的實例

public class SomeClass 
{ 
    public void SomeMethod() 
    { 
     var SomeVariable = new SomeClass(); 
    } 
} 

我可以明顯地宣佈

public class SomeClass 
{ 
    public string SomeVariable; 
} 
+0

看到這篇博文:[爲什麼沒有var字段?](http://blogs.msdn.com/b/ericlippert/archive/2009/01/26/why-no-var-on-fields.aspx ) – user200783 2010-11-09 20:39:22

回答

4

你允許使用var當地的聲明,但沒有領域,基本上。

Eric Lippert's blog post解釋了原因。本質:

  • 它引入了一些尷尬的情況下有歧義
  • 這意味着工作了暴露匿名類型爲一類的公共接口的一部分的方式,可能
  • 它不與方式以及工作編譯器實現(這聽起來像是球隊只是懶惰,但他們需要優先考慮像其他人一樣工作)

(我當然希望無論你的C#的書是C#的深入開展,「因爲我肯定提它有...第8.2.2兩個版本:)

+0

感謝您的詳細信息。我提到的兩本書是; Pro C#4和.Net 4以及「Head First C#」。爲了清楚起見,他們在幾個地方陳述了使用匿名類型var關鍵字及其用法的詳細信息。但是我並沒有明白爲什麼它的使用不在課堂本身的範圍內。 – pghtech 2010-11-09 21:29:47