11
A
回答
36
int xyz = 0;
为什么让人们觉得超过必要? default
对于泛型代码非常有用,但在这里它不会添加任何内容。你也应该考虑如果你在正确的地方初始化它,并且有一个有意义的价值。有时你会看到堆栈变量的代码如下:
int xyz = 0;
if(someCondition)
{
// ...
xyz = 1;
// ...
}
else
{
// ...
xyz = 2;
// ...
}
在这种情况下,您应该延迟初始化,直到您具有实际值。请执行以下操作:
int xyz;
if(someCondition)
{
// ...
xyz = 1;
// ...
}
else
{
// ...
xyz = 2;
// ...
}
编译器确保您不使用未初始化的堆栈变量。在某些情况下,你必须使用无意义的值,因为编译器无法知道代码永远不会执行(由于异常,调用Exit等)。这是规则的例外(不是双关语)。
5
9
default
运算符的用途是为您提供类型的默认值,但主要是为了让泛型对于声明为泛型类型参数的值具有有效值而添加的。
我没有确凿的证据,但我怀疑编译器会针对您的具体情况发出相同的代码。
然而,这里有一个合法使用的default
:
public T Aggregate<T>(IEnumerable<T> collection, Func<T, T, T> aggregation)
{
T result = default(T);
foreach (T element in collection)
result = aggregation(result, element);
return result;
}
没有default
,上面的代码将需要一些黑客为了正确地编译和功能。
因此,使用第一个,将其设置为0
。
2
int xyz = default(int); 我喜欢这种方式时使用泛型bcoz它让您灵活地获得默认的任何类型,你正在与。
int xyz = 0;另一方面,这很容易和快速,显然在通用情况下不起作用。
两者都有自己的优点和缺点..
问候,
14
3
鉴于发出CIL是相同的(你
IL_0001: ldc.i4.0
IL_0002: stloc.0
在这两种情况下
),规则是要选择你感觉更好通信代码的意图之一。通常,感觉问题是主观的,难以确定;然而,在这种情况下,我是代码审查人员,我将不得不提出一个非常有吸引力的理由来接受看起来完全是多余的使用default()
。
0
INT XYZ = 0是moreclear,defaut通常与泛型
0
最好使用是
int xyz;
因为你不能访问到未初始化的变量。
相关问题
- 1. 哪个更好?为什么?
- 2. 哪个代码更好?为什么?
- 3. 数据库 - 哪个更好,为什么?
- 4. 哪个LINQ语句更好,为什么?
- 5. 哪个版本更好,为什么在Objective-C中?
- 6. 这两个GetLargestValue C#实现中的哪一个更好,为什么?
- 7. DateTime.hasvalue vs datetime == null,哪一个更好,为什么
- 8. 哪一个是更好的单身人士,为什么?
- 9. 哪种方法更好,为什么?
- 10. 哪些SQL查询更好,为什么?
- 11. 哪一个更快,为什么? JavaScript的
- 12. 哪一个是更快,为什么
- 13. 哪一个更好?
- 14. 哪一个更好?
- 15. 哪一个更好?
- 16. 哪个更好用$(function(){});或$(document).ready();为什么?
- 17. 这两个中哪一个在PHP中有更好的性能,为什么?
- 18. C++模板:关于哪个更好的使用方法以及为什么
- 19. Xamarin,Objective C或Phonegap哪一个更好?
- 20. 这两个程序哪个更好,为什么?
- 21. C“string”init - 哪个更好?
- 22. 在WPF哪个更好,为图标或XAML路径使用图像?为什么?
- 23. 哪一个是最好用的,为什么?
- 24. 从文件中读取。哪一种方法更好,为什么?
- 25. 将数组从C++传递给c#,然后通过值或引用返回,哪一个更好?为什么?
- 26. JotCache vs Joomla内置Cache哪个更好?为什么?
- 27. mongoose vs mongodb(nodejs modules/extensions),哪个更好?为什么?
- 28. 将http重定向到https。哪个更好,为什么?
- 29. Ionic和Appcelerator之间哪个更好?为什么?
- 30. 匿名函数vs命名函数哪个更好,为什么
尽量让代码更清晰,更简单。 – 2010-07-08 06:18:03