null条件运算符和!=通过在C#中引入Null-ConditionalOperators,完成下面的求值,if(instance!=null&&instance.Val!=0)如果我这样改写,if(instance?.Val!=0)ifinstanceis空引用,它将评估为真;它的行为类似于if(instance==null||instance.Val!=0)那么用这种新语法重写评估的正确方法是什么?编辑:实例是从JSON反序列化的大对象的字段。有很多这样的代码,首先检查字段是否为JSON,如果是,则检查Val属性是否不等于常量,只有两个条件都为真,才进行一些操作。正如彼得在他的评论中指出的那样,可以重构代码本身以使逻辑流程更“有意义”,尽管在这个问题中我对如何将null条件运算符与!=一起使用很感兴趣。使用Null-Conditional运算符返回值始终为nullif((instance?.Val??0)!=0)如果instance为null,则instance?.Val也将为空(在您的情况下可能是int?)。所以你应该在与任何东西比较之前检查是否为null:if((instance?.Val??0)!=0)这意味着:ifinstance?.Val为空(因为实例为空),则返回0。否则返回instance.Val。接下来将此值与0(不等于)进行比较。您可以使用空合并运算符:instance?.Val??0当instance为null或instance不为null而是Val时,上述表达式的计算结果为0。否则将返回Val的值。如果((实例?.Val)。GetValueOrDefault()!=0)?条件运算符自动将.Val属性视为Nullable。以上就是C#学习教程:空条件运算符和!=所有分享的内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
