Cosa fa questo ?? notazione media qui [duplicato]
-
28-09-2019 - |
Domanda
Eventuali duplicati:
Qual è il “??” operatore per?
Che cosa significa la notazione ??
significa qui?
ho ragione nel dire:? Utilizzare id
, ma se id
è l'uso nullo stringa "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)
});
}
Soluzione
Questo è l'operatore null coalescenza.
var x = y ?? z;
// is equivalent to:
var x = (y == null) ? z : y;
// also equivalent to:
if (y == null)
{
x = z;
}
else
{
x = y;
}
vale a dire:. x
verrà assegnato z
se y
è null
, y
altrimenti sarà assegnato
Quindi nel tuo esempio, customerID
verrà impostato a "ALFKI"
se era originariamente null
.
Altri suggerimenti
E 'l'operatore nulla coalescenza: http://msdn.microsoft.com/en-us/ biblioteca / ms173224 (VS.80) aspx
Si fornisce un valore (lato destro) quando il primo valore (lato sinistro) è nullo.
Significa "se id
o customerID
è null
, finta che sia "ALFKI"
invece.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow