C#中字段的隐式类型

时间:2015-09-23 16:23:10

标签: c# implicit-cast

我喜欢在C#中隐式输入局部变量:

var Beer = new Malt.Beer();

而不是:

Malt.Beer Beer = new Malt.Beer();

我不认为这可以扩展到字段吗?

public var Beer = new Malt.Beer();

而不是:

public Malt.Beer Beer = new Malt.Beer();

它没有编译但是我想知道我的语法错误或隐式变量(var)不能在这个范围内使用?

2 个答案:

答案 0 :(得分:2)

来自C {的MSDN programming guide

  

备注以下限制适用于隐式类型变量声明:var只能在局部变量为   在同一声明中声明和初始化;变量不可能   初始化为null,或方法组或匿名函数。

     
      
  • var不能用于类范围的字段。
  •   
  • 使用var声明的变量不能在初始化表达式中使用。换句话说,这个表达是合法的:   int i = (i = 20);但此表达式会产生编译时错误:   var i = (i = 20);
  •   
  • 无法在同一语句中初始化多个隐式类型变量。
  •   
  • 如果名为var的类型在范围内,则var关键字将解析为该类型名称,并且不会被视为隐式的一部分   键入局部变量声明。
  •   

答案 1 :(得分:1)

C#中的字段无法隐式输入,抱歉。我认为它与字段范围有关,而与局部变量有关。