这种情况是什么意思?

if (!helper?.Settings.HasConfig ?? false)

附言
  • helper是某些class的变量
  • Settings是一些字段
  • HasConfig也是字段
  • 最佳答案

    好吧,?.是一个空条件运算符

    https://msdn.microsoft.com/en-us/library/dn986595.aspx

    x?.y
    

    表示如果null为null,则返回x,否则返回x.y??空合并运算符

    https://msdn.microsoft.com/en-us/library/ms173224.aspx
    x ?? y
    

    表示x == null是否返回y,否则x
    结合以上所有
    helper?.Settings.HasConfig ?? false
    

    表示:如果返回false
    helper == null or
    helper.Settings.HasConfig == null
    

    否则返回
    helper.Settings.HasConfig
    

    没有???. if的代码可以重写为麻烦的代码
    if (!(helper == null
            ? false
            : (helper.Settings.HasConfig == null
                 ? false
                 : helper.Settings.HasConfig)))
    

    关于c# - C#中的变量之后 “?”是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37851873/

    10-10 06:50