一尘不染

为什么类字段不能为var?

c#

class A
{
A()
{
var x = 5; // this is allowed
}

    var _x = 5;   // the compiler is unhappy
}

我猜编译器必须能够像为本地变量一样推导成员变量的类型。那有什么区别呢?


阅读 217

收藏
2020-05-19

共1个答案

一尘不染

埃里克·利珀特(Eric Lippert)在这里回答了您的问题:
为什么字段上没有变量?

基本上,对于一般情况,它需要重写C#编译器,因为它当前进行类型推断的方式不适用于var字段变量分配的周期。

2020-05-19