相关疑难解决方法(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关键字有什么意义?

不是在问它是如何运作的.我不是在问它是否会影响性能.我已经知道那些答案了.

我想知道MS C#团队首先将它添加到语言中的原因.你不会在语言中加入无聊的东西.一定有一个值得注意的问题.这是什么问题?

我见过的"它解决的问题"最接近的例子是使用匿名类型时,如下所示:

var linqResult = from element in SomeCollection s
                 elect new { element.A, element.B } 
Run Code Online (Sandbox Code Playgroud)

具有讽刺意味的是,样式和编码标准指南(例如Microsoft提供的)建议编码人员避免在结果类型不明显时使用'var'.换句话说,'var'的(推测)预期目的与编码标准指南相冲突.

如果我正在编写编码标准,并试图防止过度使用'var',我有点倾向于说"仅使用'var'来回应匿名类型." 但这带来了问题的全方位:将"var"添加到语言中的目的是什么?

c# linq coding-style var

14
推荐指数
2
解决办法
3644
查看次数

C#var关键字用法

可能的重复:
使用什么:var或对象名称类型?
在C#中使用var关键字var关键字
的重点是什么?
我是否应该总是喜欢在C#3.0中隐含类型的局部变量?

我刚刚安装了ReSharper的试用版,以便为我的公司进行评估.我注意到的一件事是建议我更改以下内容(编写示例):

string s = "";
Run Code Online (Sandbox Code Playgroud)

var s = "";
Run Code Online (Sandbox Code Playgroud)

在声明变量时,最好使用var关键字而不是使用Object Type吗?它给了什么优点.对于上下文,我是一名刚刚过渡到.Net工作的Java开发人员.

c# styles

12
推荐指数
3
解决办法
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
查看次数

使用var比C#中的显式类型有什么优势?

可能的重复:
var关键字的重点是什么?
在C#中使用var关键字

我理解IEnumerable<...>数据类型如何使代码的可读性降低或嵌套泛型看起来有点令人生畏.但除了代码可读性之外,使用var而不是显式类型是否有优势?看起来通过使用显式类型,您最好传达变量的功能,因为您知道它是什么.

如果它是工作场所编码标准,我会为了团队合作而使用它.然而,在我自己的项目中,我更愿意避免使用var.

c# var

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

隐式类型如何使代码更清晰?

在我正在阅读的一本书中,它指出隐式类型使得以下代码比不使用var关键字时更清晰:

var words = new[] { "a", "b", null, "d" };

foreach (var item in words)
{
    Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)

在我看来,情况正好相反:如果您使用了string,那么代码的读者会立即知道它是foreach循环中的字符串,而不必查找定义变量的代码.

隐式类型如何使上面的代码更清晰?

附录

这本书是C#3.0 - Die Neuerungen.schnell + kompakt是德语,实际文本是:

Das Schluesselwort var kann auch beim Durchlaufen von foreach-Schleifen verwendet werden,um somit den Code uebersichtlicher und einfacher zu gestalten.Besonders bei komplexen Typen kann man auf diese Art und Weise Programmierfehler verhindern.

这是我的翻译:

在遍历foreach循环时也可以使用var关键字,从而使代码更容易和更简单地创建.特别是在使用复杂类型时,这可以防止编程错误.

好吧,现在更仔细地阅读它,他实际上声明var在foreach循环中使代码更容易创建但不一定更容易阅读.

c# implicit-typing

10
推荐指数
4
解决办法
1387
查看次数

为什么使用var而不是类名?

可能重复:
var关键字有什么意义?
使用var比C#中的显式类型有什么优势?

我总是看到其他人生成如下代码:

var smtp = new SmtpClient();

但为什么要使用var而不是SmtpClient在这种情况下呢?我总是

SmtpClient smtp = new SmtpClient();

var更有效?为什么要使用var而不是实际的变量类型?我错过了什么吗?

c# variables var

8
推荐指数
3
解决办法
6987
查看次数

什么时候应该在c#中使用var类型?

可能重复:
var关键字有什么意义?

什么是var类型,应该在c#中使用?什么时候应该使用?

你能为方法的参数指定var类型吗?

c# types

4
推荐指数
1
解决办法
272
查看次数

为什么c#需要"var"标识符?

可能重复:
var关键字有什么意义?

为什么c#需要类型推断类型变量的"var"标识符?

我的意思是把它关掉是什么问题:

a = 1;
//vs
var a = 1;
Run Code Online (Sandbox Code Playgroud)

在Scala中阅读编程:

"类型变量"语法不能简单地忽略类型 - 将不再有标记来启动定义.

但是把它留在a:Intint a之间有什么不同呢?

c# syntax scala

4
推荐指数
1
解决办法
482
查看次数

C#3.0中的var关键字

可能重复:
var关键字有什么意义?

大家好,

我想确认一下我的理解是否正确.如果我不使用LINQ,那么使用var的唯一好处就是简化了吗?这是正确的理解吗?

.net c# var visual-studio-2008 c#-3.0

2
推荐指数
1
解决办法
807
查看次数

c#.Net中"var"关键字的意义是什么?

可能重复:
在C#中使用var关键字var关键字
的重点是什么?

我在使用隐式打字而不是显式打字时有点困惑.

正如MSDN在C#编码标准中引用的那样:

当从变量的右侧明显变量的类型时,或者当精确类型不重要时,对局部变量使用隐式类型.

我的问题是,当我们已经知道底层变量类型时,为什么我们需要在这里使用隐式类型?

有什么好处?

请帮助澄清我的疑问.

c# var

2
推荐指数
1
解决办法
5917
查看次数

C#中var和string有什么区别?

varstring#在C#之间有什么区别?

c#

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