Odchodzimy na moment od klasycznej formy przedstawiania treści, jeśli chodzi o "CSharpa". To będzie króciutki artykuł pełniący rolę uzupełnienia wiedzy dotyczącej wartości zmiennych. Zobaczcie jakie wartości domyślne przyjmują zmienne w języku C#, kiedy nie zostanie im przypisana żadna wartość.
Tweet |
WARTOŚCI DOMYŚLNE W JĘZYKU C#. PEŁNE "CYFROWE" ZESTAWIENIE
Co prawda artykuł ten nie będzie zawierał tradycyjnej formy w postaci poradnika, tylko raczej posłuży jako ściągawka dla tych, których interesuje jaką zmienna przyjmie wartość w sytuacji jej niezainicjowania, w zależności od typu danych.
JEST JEDNO "ALE"!
Muszę podkreślić ważną rzecz. Zmiennej zostanie przypisana wartość domyślna, ale tylko zmiennej występującej w roli danej składowej (jest umieszczona w klasie, strukturze lub innej konstrukcji). Zmienne "sterczące" na zewnątrz nadal będą wymagały ręcznej inicjalizacji zanim będzie można z nich skorzystać na rzecz innych instrukcji np. wyrażeń arytmetycznych.
KAŻDY "GATUNEK" PRZYJMUJE INNĄ WARTOŚĆ DOMYŚLNĄ
Myślę, że całokształt nie wymaga wielu komentarzy. Wartości domyślne w języku C# prezentują się w sposób następujący. typów całkowitoliczbowych od "sbyte" do "ulong" zostanie przypisana wartość zero. Typy zmiennoprzecinkowe otrzymają także wartość zero, tylko "z ogonkiem" czyli 0.0. Dla typów znakowych zostanie przypisany znak pusty ('\0') zwany w języku C "null terminator", używany w celu zasygnalizowania końca łańcucha. Wartości logiczne będą z góry "fałszywe" (wartość "false"), a dla typów referencyjnych (takich jak obiekt), domyślnie zostanie przypisana wartość "null" (oznaczenie, że zmienna nie wskazuje na nic, nazywane wartością "pustą"). To dotyczy również łańcuchów znaków z uwagi na naturę przechowywania ich wartości. Przypisując łańcuch znaków, przypisujemy nowy adres i alokujemy nową pamięć, dlatego to także jest obiekt!
TABELARYCZNE ZESTAWIENIE WARTOŚCI DOMYŚLNYCH
No to jeszcze raz :D. To samo, tylko w formie tabelki:
TYP DANYCH | WARTOŚĆ DOMYŚLNA |
byte | 0 |
sbyte | |
short | |
ushort | |
int | |
uint | |
long | |
ulong | |
float | 0.0 |
double | |
decimal | |
char | \0 (znak pusty) |
bool | false |
obiekt | null |
string |
Tak się prezentują wartości domyślne w języku C#. Gdyby kogoś interesowały szczegóły na temat samej istoty typu danych zapraszam do innego artykułu.
Wartości domyślne są przypisywane tylko wtedy, kiedy są one częścią innej konstrukcji oraz wykonano inicjalizację poprzez wywołanie konstruktora.
Uprzedzam, że "null'a" nie zobaczycie, gdyż to w końcu wartość pusta :D!
Dotarliśmy do mety! Jak wspomniałem, to nie był artykuł tłumaczący zagadnienie "step by step". Raczej suplement ;).