Yah*_*ein 3 c# logical-operators
我想检查两个字符串中的一个是否包含部分字符串.知道firstString或secondString可以为null,我尝试了以下内容:
string firstString= getValue();
string secondString= getValue();
if (firstString?.Contains("1") || secondString?.Contains("1"))
{
//logic
}
Run Code Online (Sandbox Code Playgroud)
我收到编译时错误,提到:
运营商'||' 不能应用于'bool'类型的操作数?和'布尔?'
看起来像String的结果?.Contains("1")是可以为空的布尔值.
这个错误实际上对我有意义,因为运行时间可能会面临:
{null||true, null||false, null||null, etc..}
Run Code Online (Sandbox Code Playgroud)
覆盖此错误的最佳方法是什么?我可以避免写两个嵌套的ifs吗?
Pat*_*man 11
这取决于您要如何评估null值:as true或false.我习惯于假.
如果是这样,您可以使用null-coalescing运算符:
(firstString?.Contains("1") ?? false) || (secondString?.Contains("1") ?? false)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2119 次 |
| 最近记录: |