gpt4 book ai didi

c# - 检查类型而不是 null 是一个合理的选择吗?

转载 作者:太空狗 更新时间:2023-10-29 22:11:04 27 4
gpt4 key购买 nike

我的一位(高级)同事在他的代码中做了一些非常奇怪的事情。

他没有检查变量是否为 null,而是检查类型。而且因为

null is 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 似乎同意我的观点。有什么理由这样写支票吗?

这是检查变量的有效方法吗?或者在某些特殊情况下,这可以被认为是糟糕的风格甚至有害吗?

除非我确定这实际上没有意义,否则我不想面对他。

最佳答案

这不是个好办法。更好的方法是:

return _bar ?? string.Empty;

你看你同事代码的时候是否清楚他在找空值?不,那不是一个好的选择。可能“is”运算符首先要做的只是检查 null 然后返回 false。所以你自己做就变得更干净了。或者只使用空合并运算符

关于c# - 检查类型而不是 null 是一个合理的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436508/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com