3. Podstawy – Komentarze, zmienne, typy zmiennych, deklaracja, inicjalizacja
3. Podstawy – Komentarze, zmienne, typy zmiennych, deklaracja, inicjalizacja
W tym nagraniu pokazuję jak zakomentować linię lub fragment kodu normalnie jak i przy pomocy skrótów klawiszowych. Pokazanie wielu przydanych skrótów klawiszowych, które ułatwią życie i zabawę w Visualce. Dodatkowo powiem o tym jakie typy danych jak i zmiennych występują w C#, ile zajmują pamięci oraz jak je zadeklarować i zainicjalizować. Na koniec pokaże jak tworzyć regiony w kodzie, które przydadzą się do ładnego tzw. Grupowania kodu?. To wszystko możecie obejrzeć w nagraniu. Tutaj postaram się pokazać to słownie
Punkty w nagraniu:
- Komentarze
- Przydatne skróty klawiszowe
- Typy danych
- Typy wartościowe (Stos)
- Typy proste
- Całkowite
- Zmiennoprzecinkowe
- Znakowy
- Logiczny
- Typy wyliczeniowy
- Typy strukturalne
- Typy puste
- Typy proste
- Typy referencyjne (Sterta)
- Typy klas
- Typy interfejsów
- Typy tablicowe
- Typy delegatów
- Typy wartościowe (Stos)
- Predefiniowane typy zmiennych
- Deklaracja i inicjalizacja zmiennych
- Deklaracja
- Inicjalizacja
- Deklaracja z inicjalizacją
- Regiony
- Bez nazwy
- Z nazwą
Projekt do pobrania: Link
1. Komentarze
Czasami jest taka potrzeba żeby w kodzie dodać jakiś komentarz dla siebie lub dla innych programistów, jakaś podpowiedź lub chwilowe za komentowanie kodu ‘bo coś tam’. Można to zrobić na różne sposoby
// string _name; // int _age;
Klasycznie zakomentowany kod przy pomocy podwójnego znaku /
Dodatkowo można kod za komentować przy pomocy skrótu klawiszowego CTRL + K, CTRL + C i od komentować przy pomocy
CTRL + K, CTRL + U
/* string _name; int _age; */
Drugim sposobem zakomentowania kodu jest skorzystanie ze znaku / i *. W miejscu w którym chcemy rozpocząć za komentowanie danego fragmentu kodu wstawiamy /* i kończymy w miejscu w którym chcemy zakończyć dodając */
Można jeszcze skorzystać z paska narzędzi w górnym panelu okna. Pierwsza ikona odpowiada za zakomentowanie kodu, a druga za od komentowanie kodu. Jeśli nie widzicie tych ikon to włączyć je można w
Widok ► Paski narzędzi ► Edytor Tekstu
2. Przydatne skróty klawiszowe
W tabelce przedstawiłem przydatne skróty klawiszowe z których w większości sam korzystam.
Skróty klawiszowe | Opis |
---|---|
Tab | Dodaje tabulator (wolną przestrzeń) |
SHIFT + Tab | Kasuje dodany tabulator |
CTRL + SHIFT + ◄► (do wyboru) | Zaznacza kod całymi słowami |
SHIFT + ▲▼ (do wyboru) | Zaznacza cały wiersz nad/pod |
Lewy ALT + ▲▼ (do wyboru) | Przenosi zaznaczony kod lub linię kodu wiersz wyżej lub niżej |
CTRL + K, CTRL + C | Zamienia zaznaczone linie w komentarz |
CTRL + K, CTRL + U | Usuwa komentarz z zaznaczonych linii |
CTRL + K, CTRL + D | Formatuje kod w całym dokumencie |
CTRL + K, CTRL + F | Formatuje zaznaczony kod |
CTRL + D | Klonuje zaznaczony kod |
CTRL + C | Kopiuje zaznaczony kod |
CTRL + X | Wycina zaznaczony kod |
CTRL + V | Wkleja zaznaczony kod (to co jest aktualnie w schowku |
CTRL + Z | Cofa wprowadzoną zmianę w kodzie |
CTRL + Y | Przywraca wprowadzoną zmianę w kodzie |
3. Zmienne?
Zmienna to nic innego jak pewien obszar pamięci wirtualnej komputera do której przypisujemy jakąś wartość. Jeśli chodzi o C# to każda zmienna ma określony typ, gdzie każdy typ określa wartością jaką może przechowywać i co za tym idzie ile pamięci będzie zajmować. Dla przykładu zmienna typu int, czyli liczba całkowita będzie mogła przechowywać wartości z zakresu -2 147 483 648 do 2 147 483 647 i będzie zajmowała 4 bajty pamięci. Każdy typ zmiennych może wykonywać konkretne operacje np. wspomniany int może wykonywać operacje arytmetyczne takie jak – + / * %.
4. Typy danych
Poniżej przedstawiłem diagram w którym widzimy rozdzielenie typów danych na dwie duże grupy.
- Typy wartościowe – tutaj wskakują wszelkie zmienne oraz argumenty przekazane do funkcji. Przechowywane są w pamięci do momentu wyjścia z metody lub po za klamrę. Dla przykładu, tworzymy zmienne wewnątrz metody to będą one przechowane w pamięci aż do momentu wyjścia z metody. Dodatkowo warto powiedzieć, że zmienne, które znajdują się w typach wartościowych lądują na Stosie.
- Typy referencyjne – do tej grupy zaliczyć można klasy, instancje klas, interfejsy, delegaty, tablice. Elementy znajdujące się w typach referencyjnych lądują na Stercie
Czym jest Stos i Sterta omówię w późniejszych materiałach, dodam tylko, że nie należy ich mylić ze strukturami do przechowywania danych. Powiem tylko tyle, że Stos i Sterta są częścią pamięci wirtualnej, która jest przydzielona aplikacji podczas uruchamiania, każda aplikacja ma osobne.
5. Predefiniowane typy zmiennych
W tabelce poniżej znajdują się predefiniowane typy zmiennych, które znaleźć można w C#. Dodałem także krótki opis, informację o tym ile pamięci zajmuje dana zmienna w bajtach itp.
Rodzaj (Alias) | Typ .NET | Opis | Rozmiar w bajtach | Zakres | Przyrostek |
---|---|---|---|---|---|
byte | System.Byte | 8-bitaowa liczba całkowita bez znaku | 1 | 0 do 255 | |
sbyte | System.SByte | 8-bitowa liczba całkowita ze znakiem | 1 | -128 do 127 | |
short | System.Int16 | 16-bitowa liczba całkowita ze znakiem | 2 | -32 768 do 32 767 | |
ushort | System.UInt16 | 16-bitowa liczba całkowita bez znaku | 2 | 0 do 65 535 | |
int | System.Int32 | 32-bitowa liczba całkowita ze znakiem | 4 | -2 147 483 648 do 2 147 483 647 | |
uint | System.UInt32 | 32-bitowa liczba całkowita bez znaku | 4 | 0 do 4 294 967 295 | u |
long | System.Int64 | 64-bitowa liczba całkowita ze znakiem | 8 | -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807 | l (l jak Lena) |
ulong | System.UInt64 | 64-bitowa liczba całkowita bez znaku | 8 | 0 do 18 446 744 073 709 551 615 | ul |
float | System.Single | 32-bitowa liczba zmiennoprzecinkowa o pojedynczej precyzji | 4 | -3.402823e38 do 3.402823e38 | f |
double | System.Double | 64-bitowa liczba zmiennoprzecinkowa o podwójnej precyzji | 8 | -1.79769313486232e308 do 1.797693134862323e308 | d |
decimal | System.Decimal | 128-bitowa liczba zmiennoprzecinkowa używana do obliczeń finansowych i pieniężnych | 16,384 | (+ lub -) 1,0 x 10e-28 do 7,9 x 10e28 | m |
char | System.Char | 16-bitowy pojedynczy znak Unicode | 2 | Dowolny znak np. a, ", \x0045 (hex) lub \u0059 (Unicode) | |
bool | System.Boolean | 8-bitowa logiczna wartość true/false | 1 | True/False, czyli prawda lub fałsz | |
object | System.Object | 4-bitowy podstawowy typ wszystkich innych typów | |||
string | System.String | Ciąg znaków Unicode | |||
DateTime | System.DateTime | 8-bitowy typ, który przedstawia datę i godzinę | 0:00:00 01.01.2001 do 23:59:59 31.12.9999 |
6. Deklaracja i inicjalizacja zmiennych
Deklarację zmiennych zaczynamy od podania typu zmiennej potem jej nazwy kończąc średnikiem
typZmiennej nazwa;
string _name; string _lastName; int _age;
Można też zadeklarować parę zmiennych tego samego typu obok obok siebie bez potrzeby przechodzenia do nowej linii
string _name, _lastName; int _age, _level;
Skoro mamy już zadeklarowane zmienne to teraz wypadało je zainicjalizować, czyli przypisać im wartości
_name = "Tajko"; // czyli odwołanie się do zmiennej i przypisanie jej wartości konkretnego typu _level = 666;
Patrząc na powyższe rozbijanie tworzenia z przypisaniem wartości na dwie części, lepiej by było zrobić wszystko za jednym zamachem, od razu zadeklarujemy i zainicjalizujemy sobie inne typy zmiennych
typZmiennej nazwa = wartość;
string _name = "Tajko"; int _age = 100; bool _isReal = true; char _specialChar = 'T';
7. Regiony
Region, a dokładniej #region i #endregion jest dyrektywą preprocesora w których możemy zamieścić kod, który zostanie później zwinięty co pozwoli nam w fajny sposób pogrupować kod.
#region #endregion
Region bez nazwy
#region Fields string _name = "Tajko"; #endregion Fields
Region z nadaną nazwą i zmienną w środku