我的一个(高级)同事在他的代码中做了一些非常奇怪的事情.
他没有检查变量是否为null,而是检查类型.因为
null是FooType
实际上返回false,这是有效的.
public class Foo
{
private string _bar = null;
public string Bar
{
get
{
// strange way to check for null
return (_bar is string) ? _bar : "";
}
set { _bar = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是糟糕的编码,Resharper似乎同意我的看法.有没有理由以这种方式写支票?
这是检查变量的有效方法吗?或者这可以被认为是不好的风格,甚至可能在某些特殊情况下有害?
除非我确定这实际上没有意义,否则我不想与他对抗.
Osk*_*lin 10
这不是一个好方法.更好的方法是:
return _bar ?? string.Empty;
Run Code Online (Sandbox Code Playgroud)
当您阅读同事代码时他是否正在寻找空值?不,那不是一个好选择.也许"is"运算符首先要做的只是检查null然后返回false.因此,自己做到这一点变得更加清洁.或者只使用null-coalescing运算符
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |