Podstawy referencji null
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 31 z 66.
W języku C# odwołanie null oznacza brak obiektu. Zrozumienie, jak pracować z wartościami null, jest niezbędne do pisania odpornego kodu.
Zadeklaruj zmienną typu referencyjnego (na przykład string) bez przypisywania jej wartości:
string name = null;Zmienna 'name' zawiera teraz odwołanie null, co oznacza, że nie wskazuje żadnego obiektu w pamięci.
Próba użycia odwołania null bez sprawdzenia może powodować błędy w czasie wykonywania:
string name = null;
// To spowoduje zgłoszenie wyjątku NullReferenceException
int length = name.Length;Możesz sprawdzić, czy odwołanie ma wartość null, zanim go użyjesz:
string name = null;
if (name != null)
{
// Można tu bezpiecznie użyć name
int length = name.Length;
}Możesz też przypisać zmiennej wartość inną niż null:
string name = null;
name = "John";
// Teraz można bezpiecznie użyć name
int length = name.Length; // length będzie wynosić 4Wyzwanie
ŁatwyUtwórz metodę o nazwie ProcessName, która przyjmuje parametr typu string o nazwie name. Metoda powinna:
- Sprawdzić, czy nazwa ma wartość null
- Jeśli nazwa ma wartość null, wypisać: "Name is null"
- Jeśli nazwa nie ma wartości null, wypisać: "Name length is X" (gdzie X to długość nazwy)
Spróbuj swoich sił
using System;
class Program
{
public static void ProcessName(string name)
{
// Wpisz tutaj swój kod
}
static void Main(string[] args)
{
string input = Console.ReadLine();
// Przekształć ciąg znaków "null" w rzeczywistą wartość null
string name = input.ToLower() == "null" ? null : input;
ProcessName(name);
}
}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