深度null检查,还有更好的方法吗?
这个问题是在引进之前问了.?
用C#操作6 /的Visual Studio
2015年。
我们都去过那里,我们有一些很深的属性,例如cake.frosting.berries.loader,我们需要检查它是否为null,因此也不例外。要做的方法是使用短路if语句
if (cake != null && cake.frosting != null && cake.frosting.berries != null) ...
这并不十分优雅,也许应该有一种更简单的方法来检查整个链,看看它是否与空变量/属性相关。
是否可以使用某些扩展方法,或者它是语言功能,还是一个坏主意?
回答:
我们考虑过添加一个新的操作“?”。具有所需语义的语言。(现在已添加;请参见下文。)也就是说,您会说
cake?.frosting?.berries?.loader
编译器将为您生成所有短路检查。
它并没有成为C#4的标准。也许是该语言的一个假设的未来版本。
该?.
操作员现已计划用于下一个Roslyn编译器版本。请注意,关于运算符的确切语法和语义分析仍存在一些争论。
Visual Studio
2015已发布,并附带支持空条件运算符?.
和?[]
的C#编译器。
以上是 深度null检查,还有更好的方法吗? 的全部内容, 来源链接: utcz.com/qa/405434.html