c# - 为什么我们不能在类级别声明 var a = new List<string> ?

标签 c#

我知道我们无法在类级别执行此操作,但在方法级别我们始终可以执行此操作。

var myList=new List<string> // or something else like this

我想到了这个问题,因为无论我们在哪里声明这样的变量。我们总是在表达式的 RHS 处提供类型信息。所以编译器不需要进行类型猜测。 (如果我错了请纠正我)。

所以问题仍然是为什么不在类级别,而在方法级别允许

最佳答案

实现此功能存在技术问题。常见情况看起来很简单,但更棘手的情况(例如,引用链或循环中的其他字段的字段、包含匿名类型的表达式)却并非如此。

有关深入解释,请参阅 Eric Lippert 的博客:Why no var on fields?

关于c# - 为什么我们不能在类级别声明 var a = new List<string> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/159359/

相关文章:

c# - 违反 PRIMARY KEY 约束 : Cannot insert duplicate key in object

c# - 抽象类可以包含公共(public)方法吗?

c# - 在单独的线程上运行 Log4Net appender

c# - 如何限制每次安装只能使用一台计算机?

c# - 如何使用反射调用泛型方法?

C# % 抛出 DivideByZeroException

c# - 修复 SubSonic 2.2 日历,当控件不可见时如何获取 RegisterClientScriptIninclude 调用以进行渲染?

c# - Swagger 中的重复参数输出

c# - System.Diagnostics.Process.Start 奇怪的行为

c# - 在事件上使用 GUI 功能 (MVVM)