Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# var与具体类型用法_C#_Var - Fatal编程技术网

C# var与具体类型用法

C# var与具体类型用法,c#,var,C#,Var,我在stackoverflow中查看了5篇或更多关于var使用的帖子,但我仍然在寻找关于var使用的答案。我习惯于使用具体类型而不是var,但我的Resharper抱怨说要改为var。即使知道具体类型,var也是一种类型选择吗 从Visual C#3.0开始,在方法范围内声明的变量可以具有隐式类型变量。隐式类型的局部变量是强类型的,就像您自己声明了类型一样,但编译器确定了类型。i的以下两个声明在功能上是等效的: var i = 10; // implicitly typed int i = 1

我在stackoverflow中查看了5篇或更多关于var使用的帖子,但我仍然在寻找关于var使用的答案。我习惯于使用具体类型而不是var,但我的Resharper抱怨说要改为var。即使知道具体类型,var也是一种类型选择吗

从Visual C#3.0开始,在方法范围内声明的变量可以具有隐式类型变量。隐式类型的局部变量是强类型的,就像您自己声明了类型一样,但编译器确定了类型。i的以下两个声明在功能上是等效的:

var i = 10; // implicitly typed
int i = 10; //explicitly typed
我认为这里对你来说最重要的是

隐式类型的局部变量是强类型的,就像 您自己声明了类型,但编译器确定了类型

除此之外,从

可以为局部变量指定一个推断的“类型”var,而不是 显式类型。var关键字指示编译器推断 变量右侧表达式中变量的类型 初始化语句。推断类型可以是内置类型,也可以是 匿名类型、用户定义类型或.NET中定义的类型 框架类库。 重要的是要理解var关键字并不表示“variant”,也不表示变量类型松散,或者 晚班。这只意味着编译器确定并分配 最合适的类型。


以下是msdn的摘录

当在键盘上键入变量的特定类型很乏味,或者很明显,或者不增加代码的可读性时,var关键字也很有用。var以这种方式很有用的一个例子是嵌套的泛型类型,例如用于组操作的类型。在以下查询中,查询变量的类型为IEnumerable>。只要您和其他必须维护代码的人理解这一点,为方便和简洁起见使用隐式类型就没有问题

然而,var的使用至少有可能让其他开发人员更难理解您的代码。因此,C#文档通常仅在需要时使用var

参考:


祝你好运

当类型明显可以提高可读性时,我更喜欢使用
var

var myVariable = new List<string>();
var myVariable2 = (int) someOtherVariable;

您可以将ReSharper配置为仅对此提出建议。但是,顺便说一句,ReSharper总是正确的。在节省硬盘空间和按键方面,var更好。但我不知道var为编译器节省了多少时间。
int myVariable3 = GetSomeValue();