可能重复:
Why class fields cannot be var?
Implicit typing; why just local variables?
var in C# - Why can't it be used as a member variable?
var类型不能应用于成员变量。我想知道为什么?
答案 0 :(得分:3)
Eric Lippert对此有一个detailed blog post。
要点:
我喜欢简单的情况,但“简单”的平衡很难以一种“感觉正确”的优雅方式来决定。
答案 1 :(得分:1)
var只能在本地范围内使用。 实际类型必须由编译器推断,并且很难/不可能从这样的结构中确定类型:
class Person
{
public var Name {get; set;}
}
答案 2 :(得分:0)
简单地说:
// code fragment
int Add(int x, int y) { return x + y; }
var x = Add(int x, int y); // the compiler will know that the result of the call will be of type int
class X
{
var x; // illegal, the compiler has no idea what's the target type of X
}
答案 3 :(得分:0)
因为它的类型未知。这与编译器的构建顺序有关。
您还可以查看this topic.