1
72
《圣经》的作者
.Net Framework Design Guidelines
2008年11月出版的一本很棒的书建议考虑使用
另一方面,如果使用
有可能,为了确保可读性不受低级开发人员的突发奇想的影响,您的组织认为您不值得这样做
在大多数情况下,使用
|
2
34
底线是:使用描述性的标识符名称,你会相处得很好。
作为旁注:我想知道当不允许使用匿名类型时,它们如何处理匿名类型
|
3
21
在大多数情况下,当明智地使用(即类型和值相同的简单类型初始值设定项)时,就可以了。
在这些情况下,您可能会遇到任何类型解析的问题,例如:
示例:
方法隐藏:
等 |
4
18
|
5
10
其次,这条规则可能是合理的,因为
代码读的次数比写的次数多
|
6
8
http://blogs.msdn.com/jaredpar/archive/2008/09/09/when-to-use-type-inference.aspx |
7
6
你的朋友很不幸,他们在一个极端分子手下工作。 |
8
5
完全禁止它意味着禁止使用匿名类型(随着LINQ的使用越来越多,匿名类型变得非常有用)。 除非有人能正式提出一个不使用匿名类型的好理由,否则这就是愚蠢的简单明了。 |
9
5
我将向您展示使用和不使用“var”是关于清晰地沟通的。 我将展示使用“var”使代码更易于阅读的示例,以及使用var使事情难以理解的其他示例。 更重要的是,您将看到“var”的清晰程度在很大程度上取决于您对代码中其他所有内容的命名。
谁走了另一条路?杰克还是比尔?在本例中,“Jake”和“Bill”类似于类型名称。“他”和“他”就像var关键字。在这种情况下,更具体一些可能会有所帮助。下面的例子更清楚。
这些类比涵盖了要点,但不能说明全部情况。在这些例子中,提到这个人只有一种方法。要么用他们的名字,比如比尔,要么用更一般的方式,比如“他”和“他”。但我们只是在用一个词。 对于代码,您有两个“单词”,类型和变量名。
这个怎么样:
这个怎么样:
或者这个:
关键词是否正确
|
10
4
|
11
4
你可以认为微软的观点是相关的,因为C语言是他们的语言:
MSDN - Implicitly Typed Local Variables (C# Programming Guide) 你也应该意识到 变量
由于大多数变量只分配一次,因此 删除变量分配上几乎所有的数据类型测试。 这使得您的代码容易受到意外更改的影响,例如合并工具或疲惫的开发人员所做的更改。 |
12
3
我个人的偏好是只对匿名类型使用“var”(事实上,如果你想使用匿名类型,你需要使用var),而这些大多来自LINQ查询。在这些情况下,如果查询投影到一个新的(隐式&匿名)类型,那么您别无选择,只能使用var。 然而,C#3.0很乐意让您在LINQ和匿名类型之外的任何地方使用var,例如:
是完全有效的,myint和mystring将由用于初始化它们的推断值强类型化。(因此,myint是System.Int32,mystring是System.String)。当然,当查看用于初始化变量的值时,很明显它们将被隐式类型化为什么类型,但是,我认为如果将上述内容编写为:
考虑一下这个令人困惑的场景:
完全有效的代码(如果有点非常规),但是在上面,我知道bbb是一个double,尽管初始化值看起来是int,但是aaa肯定不是double,而是int。 |
13
2
隐式类型是很好的,坚决禁止隐式类型的人会损害生产力,并导致代码脆弱。 这几乎就像类型安全、编译器检查的duck类型,在重构时非常有用。例如,如果我有一个返回列表的方法,并且我重构它以返回IEnumerable,那么使用var关键字并且只使用IEnumerable方法的方法的任何调用方都可以。如果我已经明确指定了,例如,List,那么我必须去把它改为IEnumerable everywhere。 显然,如果任何隐式类型调用者需要列表方法,那么在构建时我将得到编译错误,但是如果是这种情况,我可能不应该改变返回类型。 |
14
2
利珀特 sums it up well :
我个人的看法是:我发现阅读起来更难,而且对于诸如
|
15
2
从…起 Department of Declaration Redundancy Department (来自杰夫的 Coding Horror
我自己也这么认为 是 . |
16
1
我曾经遇到过这样的情况(当我通过Table.Rows集合foreach时),使用var导致类型为某个基类而不是实际的DataRow类型。这是我唯一一次在var上遇到麻烦。 |
17
-4
下面是我对效率的测试结果
第一个标签结果是:00:00:00 000034
|