C# ?? null Coalescing operator
C# ?? null Coalescing operator
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
Jednak mowa o tym jak można powyższe zastąpić.
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
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
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
Komentarze
Prześlij komentarz