有什么方法可以对函数Parameter使用'var'关键字吗?

时间:2019-01-01 15:27:14

标签: c#

我正在用C#学习泛型。我认为我的问题(..我要问的)可能很愚蠢,但有人说“对所有问题都有疑问”。

所以我不久前就在想...

为什么我们不能在函数参数列表中使用'var'关键字?

例如:

enter image description here

动态关键字正在起作用...

enter image description here

2 个答案:

答案 0 :(得分:4)

C#中的var与其他语言中的var有很大不同。

重要的是要理解var关键字并不意味着“ variant”,也不表示变量是松散类型的或后期绑定的。这只是意味着编译器确定并分配最合适的类型。

您不能将var变量分配为null,因为在这种情况下,编译器将无法理解类型。

同样,如果您将无法从方法返回VAR或无法将方法参数声明为Var,因为C#编译器将无法在编译时定义这些类型。

请参阅https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables

答案 1 :(得分:2)

var与泛型无关。它有两个用途:

首先是声明anonymous type的实例。由于它是匿名的,因此var是声明变量的唯一方法。

第二个是快捷方式。这样可以节省您编写需要声明的类型名称的工作量。但是,编译器必须能够根据您分配给变量的值来确定类型。

official documentation中查看更多信息。