Przechodzimy do następnego tematu jakim są znaki specjalne w języku C#. Jak rozumieć znak "specjalny"? Jak on wygląda? Czym on jest i jakie ma zastosowanie w kodzie? Na te pytania znajdziecie odpowiedź w środku.
Tweet |
ZNAKI SPECJALNE W JĘZYKU C# DOTYCZĄ WPLATANIA W ŁAŃCUCH ZNAKÓW!
To jest pierwsza informacja jaka jest istotna. Znak specjalny to także znak w rozumieniu typu danych "char", natomiast w rzeczywistości składa się z dwóch znaków. Pierwszym znakiem jest zawsze "backslash" ('\'), a drugim inny konkretny znak. Pełen zestaw odpowiednich znaków jest przedstawiony poniżej, więc spokojnie. Nie sprowadzę Was na zgadywanie ;).
Znaki specjalne są nazywane również "sekwencją sterującą", dlatego że same w sobie nie mają żadnego wpływu na wygląd łańcucha, tylko na zmianę zachowania programu. Pozwólcie, że wyświetlę Wam tabelkę ze wszystkimi takimi sekwencjami. Popatrzcie niżej, a szybko zobaczycie że znaki specjalne nie kończą się na dwóch sztukach :D!
ZNAK | ZNACZENIE | EFEKT |
\n | "Ucieczka" | przejście do nowego wiersza, jak po naciśnięciu klawisza Enter |
\t | Tabulacja pozioma | wykonanie tabulacji takiej samej, jak po naciśnięciu klawisza "Tab" |
\v | Tabulacja pionowa | wykonanie tabulacji pionowej |
\a | Alarm | odtworzenie dźwięku systemu operacyjnego |
\' | Pojedynczy apostrof | wypisanie znaku pojedynczego apostrofu* |
\" | Pojedynczy cudzysłów | wypisanie znaku pojedynczego cudzysłowu* |
\0 | Znak pusty | pozostawienie znaku pustego (niewidocznego) |
* - znak jest jednocześnie oznaczeniem początku i końca znaku / łańcucha znaków, stąd konieczne jest użycie ukośnika wstecznego w postaci obejścia
NIE WYŁÓŻ SIĘ NA TYM!!!
Zaznaczam ponownie. Mimo tego, że są to DWA znaki, to nadal zgodnie z zasadami są traktowane jak jeden znak (typ "char"). Więc jaki z tego wniosek? Że nadal otaczamy je apostrofami!!!
char c = '\n'
Naturalnie, można też umieścić go w łańcuchu znaków:
char c = "\n";
tylko to wciąż będzie literał o długości JEDNEGO znaku, bo w końcu są to znaki specjalne w języku C#. Nie wierzycie? To sprawdźcie sobie co Wam wyjdzie na wyjściu jak podstawicie właściwość "Length" do "Console.WriteLine" :)! Zwraca ona długość łańcucha liczoną w znakach:
Console.WriteLine("\n".Length);
CHCIAŁ(A)BYM ZOSTAWIĆ "BACKSLASH", ALE JEST JUŻ ZAJĘTY
Na końcówkę, jeszcze jedno. Jak w takim razie wyświetlić sam znak "backslasha" skoro jest zajęty? Da się tak w ogóle? Owszem :)! Po prostu zostawiacie kombinację w postaci dwóch ukośników wstecznych:
\\
i to wszystko! Pierwszy zawsze jest oznaczeniem, żeby zidentyfikować znaki specjalne w języku C#, a dodanie drugiego spowoduje wyświetlenie na wyjściu "prawdziwego" ukośnika wstecznego:
\
Znaki specjalne (przynajmniej te najbardziej podstawowe) znajdziecie praktycznie w każdym częściej wykorzystywanym języku programowania. Java, C++ i wiele innych jak najbardziej wspierają te wyżej wymienione, a część z nich może pochwalić się większą ich liczbą!
Znaki specjalne w języku C# mają wpływ na zachowanie programu. Choć z wyglądu mogą przypominać dwuznakową sekwencję, zawsze liczone są jako tylko jeden znak!
Koniec. Temat króciutki, choć może początkującym sprawić kłopoty w rozumieniu bądź podczas ich używania. Trzeba uważać gdzie postawić ukośnik :)...