c# – 为什么不能将方法参数声明为var类型

我想知道为什么方法参数不可能像var类似

private void myMethod(var myValue) {
   // do something
}
最佳答案
您只能在方法体内使用var作为变量.此外,必须在声明处指定变量,并且必须能够从右侧的表达式明确推断出类型.

在所有其他地方,您必须指定一种类型,即使理论上可以推断出类型.

原因是编译器的设计方式.简化的描述是它首先解析除方法体之外的所有内容,然后对每个类,成员等的静态类型进行全面分析.然后在解析方法体时使用此信息,特别是用于推导本地类型变量声明为var.如果var被允许在任何地方,则需要对编译器的工作方式进行大的改动.

您可以阅读Eric Lippert关于此主题的文章了解更多详情:

> Why no var on fields?

转载注明原文:c# – 为什么不能将方法参数声明为var类型 - 代码日志