我喜欢在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)不能在这个范围内使用?
答案 0 :(得分:2)
来自C {的MSDN programming guide:
备注以下限制适用于隐式类型变量声明:var只能在局部变量为 在同一声明中声明和初始化;变量不可能 初始化为null,或方法组或匿名函数。
- var不能用于类范围的字段。
- 使用var声明的变量不能在初始化表达式中使用。换句话说,这个表达是合法的:
int i = (i = 20);
但此表达式会产生编译时错误:var i = (i = 20);
- 无法在同一语句中初始化多个隐式类型变量。
- 如果名为var的类型在范围内,则var关键字将解析为该类型名称,并且不会被视为隐式的一部分 键入局部变量声明。
答案 1 :(得分:1)
C#中的字段无法隐式输入,抱歉。我认为它与字段范围有关,而与局部变量有关。