Ha nigdy nie mogę tego słówka zapamiętać jak w nim oa i inne samogłoski idą.
Może to odgrzewane kotlety ale dziś przy okazji okazji znalazłam opis takiego operatora - oczywiście na blogu Scotta Gu
int? number = 10;
int nu = number.HasValue ? number : 0 ;
Ale przecież nie o tym mowa. Jednak mowa o tym jak można powyższe zastąpić.
int? number = 50;
int res = number ?? 0 ;
//outcome: res ==55
int? numberNull = null;
res = numberNull ?? 0 ;
//outcome: res ==0
W skrócie mówiąc operator ?? sprawdza czy wartość po jego lewej stronie jest null'em, jeśli tak - to zwraca alternatywna wartość którą przedstawiamy po jego prawej stronie. Jeśli wartość przedstawiona po lewej zostanie zwrócona przez operator ?? jeśli nie będzie ona null'owa
Customer cust = getCustomer(id) ?? new Customer();
// znacznie przydatniejsze niz poniższe którego raczej nie wykorzystamy
Customer cust = ( null == getCustomer(id) ) ? getCustomer(id) : new Customer();
// i jeszcze miły przykład z ViewStatem
public string Title
{
get { return (string)ViewState["title"] ?? "Default title"; }
set { ViewState["title"] = value; }
}
Ciekawym przykładem jest też użycie tego operatora do zapytań LINQ - przykład zaprezentowany na wyżej wymienionym blogu. Dzięki operatorowi ?? możemy nadać wartość domyślna elementowi zwracanemu z zapytania LINQ.
Cool
0 komentarze:
Prześlij komentarz