相关疑难解决方法(0)

在C#中使用var关键字

在与同事讨论了在C#3中使用'var'关键字后,我想知道人们对通过var的类型推断的适当用途有什么看法?

例如,我在可疑情况下懒得使用var,例如: -

foreach(var item in someList) { // ... } // Type of 'item' not clear.
var something = someObject.SomeProperty; // Type of 'something' not clear.
var something = someMethod(); // Type of 'something' not clear.
Run Code Online (Sandbox Code Playgroud)

var的更合理用途如下: -

var l = new List<string>(); // Obvious what l will be.
var s = new SomeClass(); // Obvious what s will be.
Run Code Online (Sandbox Code Playgroud)

有趣的是LINQ似乎有点灰色,例如: -

var results = from r in dataContext.SomeTable
              select r; // Not *entirely clear* what results will be …
Run Code Online (Sandbox Code Playgroud)

c# var type-inference

406
推荐指数
32
解决办法
13万
查看次数

为什么var会变坏?

前几天我和同事聊天,听说他们的编码标准明确禁止他们var在C#中使用关键字.他们不知道为什么会如此,我总是发现隐式声明在编码时非常有用.我从来没有遇到任何问题,找出变量是什么类型(你只是将鼠标悬停在VS中的变量上,你会得到那种方式).

有谁知道为什么在C#中使用var关键字是个坏主意?

c# coding-style implicit-typing

48
推荐指数
10
解决办法
1万
查看次数

当类型已知时,是否有任何技术原因使用或不使用C#中的var?

似乎越来越多我读过的C#代码使用var类型标识符:

foreach (var itemChange in ItemChanges)
{
   //... 
}
Run Code Online (Sandbox Code Playgroud)

而不是明确说明类型:

foreach (ItemChange itemChange in ItemChanges)
{
   //... 
}
Run Code Online (Sandbox Code Playgroud)

即使知道类型.

我仍在使用后一个显式版本,因为我认为稍后阅读它会更快地了解变量的类型,而不是使用var.

但是否有任何技术理由使用其中一种?

c# var conventions

11
推荐指数
2
解决办法
763
查看次数

在C#中使用var和default进行声明

最近我看到一个人大量使用var和default关键字来声明变量(以及每个声明),如下所示:

var employee = default(Employee);   //Employee is a class
var errorInfo = default(ErrorInfo); //ErrorInfo is struct; Blank is default value
var salary = default(Double);
var isManager = default(Boolean?); 
Run Code Online (Sandbox Code Playgroud)

而不是使用:

Employee employee = null;           //Employee is a class
ErrorInfo errorInfo = Blank;        //ErrorInfo is struct; Blank is default value
Double salary = 0.0;
Boolean? isManager = null;
Run Code Online (Sandbox Code Playgroud)

或者,而不是使用偶数:

Employee employee;                  //Employee is a class
ErrorInfo errorInfo;                //ErrorInfo is struct; Blank is default value
Double salary;
Boolean? isManager;
Run Code Online (Sandbox Code Playgroud)

现在使用var和default来声明每个变量 …

c# default var

10
推荐指数
1
解决办法
8549
查看次数

.net 3.5中var数据类型的优缺点

可能的重复:
在C#中使用var关键字
在变量声明中使用"var"类型

大家好,

"Var键工作需要明确地进行类型转换尽可能避免装箱和拆箱值类型."

是否建议使用var关键字而不是显式数据类型?

c# var keyword

0
推荐指数
2
解决办法
7446
查看次数