我的一位(资深)同事在他的代码中做了一些非常奇怪的事情。
他不是检查一个变量是否为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; }
}
}
我认为这是糟糕的编码,Resharper 似乎也同意我的看法。有没有理由用这种方式进行检查?
这是一种有效的检查变量的方法吗?或者在某些特殊情况下,这可能被认为是不良风格甚至有害的吗?
除非我确定这确实没有意义,否则我不想与他对抗。