??
符号在这里意味着什么?
我是否正确地说:使用id
,但如果id
为空,请使用字符串“ALFKI”?
public ActionResult SelectionClientSide(string id)
{
ViewData["Customers"] = GetCustomers();
ViewData["Orders"] = GetOrdersForCustomer(id ?? "ALFKI");
ViewData["id"] = "ALFKI";
return View();
}
[GridAction]
public ActionResult _SelectionClientSide_Orders(string customerID)
{
customerID = customerID ?? "ALFKI";
return View(new GridModel<Order>
{
Data = GetOrdersForCustomer(customerID)
});
}
答案 0 :(得分:4)
var x = y ?? z;
// is equivalent to:
var x = (y == null) ? z : y;
// also equivalent to:
if (y == null)
{
x = z;
}
else
{
x = y;
}
即如果x
为z
,y
将被分配null
,否则会被分配y
。
因此,在您的示例中,customerID
如果原来为"ALFKI"
,则会设置为null
。
答案 1 :(得分:2)
这是空合并运算符: http://msdn.microsoft.com/en-us/library/ms173224(VS.80).aspx
当第一个值(左侧)为空时,它提供一个值(右侧)。
答案 2 :(得分:1)
这意味着“如果id
或customerID
为null
,请改为假设"ALFKI"
。