C#:如何在空值检查后声明可后续使用的局部变量?
问题
Is和As运算符可赋值局部变量以供后续使用。是否存在类似方式,可在空值检查后声明一个可后续使用的局部变量?
用户期望的写法示例:
if(Factory() != null factoryResult) { factoryResult.UsingResult(); }
回答
在C# 7.0及更高版本里,你可以用空值模式匹配直接实现这个需求,写法如下:
if (Factory() is {} factoryResult) { factoryResult.UsingResult(); }
如果需要明确指定变量类型,也可以这么写:
if (Factory() is MyType factoryResult) { factoryResult.UsingResult(); }
这种写法会自动完成空值检查,同时把非空的返回值赋值给factoryResult,这个变量在if的代码块里就能直接使用,完全满足你的需求。
内容的提问来源于stack exchange,提问作者taualfacs2
相关产品推荐
相关产品推荐

