Deklarowanie niejawnie wpisanych zmiennych lokalnych
Kompilator języka C# działa w tle, aby ułatwić pisanie kodu. Może on wnioskować typ danych zmiennej na podstawie wartości użytej do inicjowania. W tej lekcji poznasz tę funkcję nazywaną niejawnie typizowanymi zmiennymi lokalnymi.
Co to są niejawnie typizowane zmienne lokalne?
Niejawnie typizowana zmienna lokalna jest tworzona przy użyciu var
słowa kluczowego, po którym następuje inicjowanie zmiennej. Na przykład:
var message = "Hello world!";
W tym przykładzie utworzono zmienną ciągu przy użyciu słowa kluczowego var
zamiast słowa kluczowego string
.
Słowo var
kluczowe informuje kompilator języka C#, że typ danych jest implikowany przez przypisaną wartość. Po dorozumianiu typu zmienna działa tak samo, jak w przypadku użycia rzeczywistego typu danych do zadeklarowania go. Słowo var
kluczowe służy do zapisywania na naciśnięciu klawiszy, gdy typy są długie lub gdy typ jest oczywisty z kontekstu.
W przykładzie:
var message = "Hello world!";
Ponieważ zmienna message
jest natychmiast ustawiona na string
wartość "Hello World!"
, kompilator języka C# rozumie intencję i traktuje każde wystąpienie message
typu string
.
W rzeczywistości zmienna message
jest typowana jako i string
nigdy nie można jej zmienić. Rozważmy na przykład następujący kod:
var message = "Hello World!";
message = 10.703m;
Jeśli uruchomisz ten kod, zobaczysz następujący komunikat o błędzie.
(2,11): error CS0029: Cannot implicitly convert type 'decimal' to 'string'
Uwaga
Inne języki programowania używają słowa kluczowego var
w inny sposób. W języku C# zmienne są przypisywane typowi przez kompilator niezależnie od tego, czy używasz rzeczywistej nazwy typu danych, czy też zezwalasz kompilatorowi na sugerowanie typu danych. Inaczej mówiąc, typ jest blokowany w momencie deklaracji i dlatego zmienna nigdy nie będzie mogła przechowywać wartości innego typu danych.
Zmienne używające słowa kluczowego var
muszą być inicjowane
Ważne jest zrozumienie tego, że słowo kluczowe var
zależy od wartości użytej do inicjowania zmiennej. Jeśli spróbujesz użyć słowa kluczowego var
bez inicjowania zmiennej, wystąpi błąd podczas próby skompilowania kodu.
var message;
Jeśli spróbujesz uruchomić ten kod, gdy zostanie skompilowany, zobaczysz następujące dane wyjściowe:
(1,5): error CS0818: Implicitly-typed variables must be initialized
Dlaczego warto używać słowa kluczowego var
?
Słowo var
kluczowe zostało powszechnie przyjęte w społeczności języka C#. Prawdopodobnie jeśli spojrzysz na przykład kodu w książce lub w trybie online, zobaczysz var
słowo kluczowe użyte zamiast rzeczywistej nazwy typu danych, dlatego ważne jest, aby zrozumieć jego użycie.
Słowo var
kluczowe ma ważne zastosowanie w języku C#. Wiele razy typ zmiennej jest oczywisty z jego inicjowania. W takich przypadkach łatwiej jest użyć słowa kluczowego var
. Słowo var
kluczowe może być również przydatne podczas planowania kodu dla aplikacji. Po rozpoczęciu tworzenia kodu dla zadania możesz nie od razu wiedzieć, jakiego typu danych użyć. Korzystanie z var
tego rozwiązania może pomóc w bardziej dynamicznym tworzeniu rozwiązania.
Podczas rozpoczynania pracy zaleca się, aby podczas deklarowania zmiennych nadal używać rzeczywistej nazwy typu danych, dopóki nie będziesz bardziej komfortowo pracować z kodem. Użycie typu danych podczas deklarowania zmiennych pomoże Ci podkreślić przeznaczenie pisanego kodu.
Podsumowanie
Oto, co wiesz już o słowie var
kluczowym do tej pory:
- Słowo kluczowe
var
nakazuje kompilatorowi wnioskowanie typu danych zmiennej na podstawie wartości, z którą została zainicjowana. - Słowo kluczowe będzie prawdopodobnie widoczne
var
podczas odczytywania kodu innych osób, jednak jeśli jest to możliwe, należy użyć typu danych.