我想检查引用类型是否为null.我看到两个选项(_settings是引用类型FooType):
if (_settings == default(FooType)) { ... }
Run Code Online (Sandbox Code Playgroud)
和
if (_settings == null) { ... }
Run Code Online (Sandbox Code Playgroud)
这两者的表现如何不同?
Ste*_*ary 21
没有区别.任何引用类型的默认值是null
.
MSDN的default
关键字C#参考页面:https://msdn.microsoft.com/en-us/library/25tdedf5.aspx.
Ser*_*sen 19
现在我们不再需要将类型传递给默认值,默认值是首选。
它同样可读
它可以用于值类型和引用类型
它可以用在泛型中
if (_settings == 默认值) { ... }
另外,打电话后
obj = enumerable.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
之后测试默认值而不是 null 更有意义。否则它应该是 FirstOrNull,但 value 没有空值,但有默认值。
没有区别,但第二个更具可读性.最好的用处default
是处理泛型.常用代码是return default(T);
归档时间: |
|
查看次数: |
4369 次 |
最近记录: |