我发现自己经常做以下几段代码
if(bar != null)
foo(bar) // That is, pass in object 'bar' to function 'foo' if bar is not null
编辑:foo函数来自一个API,但我无法访问它的代码。本质上,API的函数期望输入为非null。
有没有更清洁的C#方法来做到这一点?还是我发现自己经常做一些在架构上不正确的事情?
抱歉,如果这是重复的话,我似乎找不到合适的词来搜索。
我尝试使用新的合并运算符来实现此目的,但是不能用于调用函数。不确定是否可以使用三元运算符来实现此目的。
我希望有一种方法可以做到这一点。有点像
bar ?? foo(bar) // That is run foo with bar when bar is not null.
答案 0 :(得分:1)
您可以在foo方法中进行空检查:
void foo(object bar)
{
if(bar == null) return;
//your lines of code
}
然后您可以运行为:
foo(bar);
答案 1 :(得分:0)
答案 2 :(得分:0)
如果我发现自己经常这样做,我在结构上做错了吗?
也许。通常,您应该知道变量是否可以为null,并省略检查。 C#8引入了一项功能来帮助您声明,验证和强制引用不能为空:Nullable Reference Types。