什么是 ?? 在我的财产?

可能重复:
C#中两个问号在一起意味着什么?

任何人都可以解释这种语法。

protected string CompanyProductSeriesId
{ 
   get 
   { 
       return Request.QueryString["CPGId"] 
              ?? (ViewState["CPSId"] == null 
                  ? "" 
                  : ViewState["CPGId"].ToString()); 
   } 
}

我想站在下面?? 在这个语法中。


A = B? C

A = C如果B == NULL

A = B如果B不是NULL

以下是CompanyProductSeriesId属性获取器的快速实现,我相信它是自我解释的:

string returnValue;

if (Request.QueryString["CPGId"] != null)
{
   returnValue = Request.QueryString["CPGId"];
}
else
{
   if (ViewState["CPSId"] == null)
   { 
      returnValue = "";
   }
   else
   {  
      returnValue = ViewState["CPGId"].ToString()); 
   }
}

return returnValue;

?? 是空聚合运算符。

它从左边返回非空的第一个操作数。


?? 被称为空合并运算符,从MSDN -

“??运算符被称为空合并运算符,用于为可为空的值类型或引用类型定义默认值,如果操作数不为null,则返回左边的操作数;否则返回右边的操作数。

这有帮助吗?

链接地址: http://www.djcxy.com/p/53839.html

上一篇: What is ?? in my Property?

下一篇: usage of double question mark in .net