Warunkowe operatory logiczne
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 37 z 66.
C# udostępnia specjalne operatory umożliwiające zwięzłą obsługę wartości null. Dwa przydatne operatory to ?? (operator łączenia z null) i ?. (operator warunkowego dostępu przy null). Pamiętaj, że są to operatory obsługi wartości null: termin „warunkowe operatory logiczne” w C# odnosi się do && i ||.
Najpierw poznajmy operator łączenia z wartością null (??). Ten operator zwraca lewy operand, jeśli nie jest on równy null, a w przeciwnym razie zwraca prawy operand.
Utwórz zmienną typu string, która może mieć wartość null:
string name = null;Użyj operatora koalescencji wartości null, aby podać wartość domyślną:
string displayName = name ?? "Guest";Po wykonaniu powyższego kodu zmienna displayName zawiera:
"Guest"Jeśli name miałoby wartość, zostałaby użyta zamiast niej:
string name = "Alice";
string displayName = name ?? "Guest";Teraz displayName zawiera:
"Alice"Wyzwanie
ŁatwyUtwórz metodę o nazwie getSafeValue, która przyjmuje dwa argumenty:
- Liczbę całkowitą, która może mieć wartość null (
int?value) - Liczbę całkowitą (
intdefaultValue)
Metoda powinna zwracać wartość, jeśli nie jest null, a w przeciwnym razie zwracać wartość defaultValue. Użyj operatora null-coalescing (??), aby to osiągnąć.
Spróbuj swoich sił
using System;
class GetSafeValue
{
public static int getSafeValue(int? value, int defaultValue)
{
// Wpisz tutaj swój kod
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Tablice wielowymiarowe
Podstawy tablic 2DDeklarowanie i inicjalizacja tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DTablice postrzępionePodstawowe operacje na macierzachPodsumowanie — tablice wielowymiarowe4Techniki sterowania przepływem
Wczesne zwrotyKlauzule ochronneInstrukcje skoku (goto)Break i continueSpłaszczanie zagnieżdżonych warunków7Zaawansowane operatory logiczne
Ewaluacja z krótkim spięciemWarunkowe operatory logicznePriorytet operatorówPowtórzenie — zaawansowane operatory2Zaawansowane podejmowanie decyzji
Wiele warunkówZłożona logika Boole’aPorównanie if i switchZagnieżdżone instrukcje switchPodsumowanie — zaawansowane decyzje5Obsługa wyjątków
Podstawy try-catchTypy wyjątkówWiele bloków catchPraca z plikamiBlok finallyusing a try-finallyWłasne wyjątkiPowtórzenie — obsługa błędów3Udoskonalenia pętli
Wydajność pętliIterowanie po złożonych strukturachKażdy typ pętliRefaktoryzacja pętliPodsumowanie — zoptymalizowane pętle6Obsługa wartości null
Podstawy referencji nullTypy wartości dopuszczające nullWzorce sprawdzania nullProgramowanie defensywnePodsumowanie — bezpieczeństwo nullPoćwicz samodzielnie: Kompilator C# online