W tym poście zapoznamy się z podstawową strukturą i elementami języka C#. Do tego celu wykorzystamy program który jest na początku w każdym tutorialu czy kursie o programowaniu w C#. Przerobiłem ten program kilka ładnych razy… 🙂
A więc przywitajmy się ze światem C#.
Do omówienia struktury programu wykorzystamy aplikację konsolową, najprostsza forma programu napisanego C#.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /* powyżej przestrzeń nazw*/ namespace HelloWorld /* deklaracja przestrzeni nazw*/ { class Program /*Klasa Programu */ { static void Main(string[] args) /* Metoda wykonywana przez klasę PRogram*/ { /*Instrukcja do wykonania przez metodę Main*/ Console.WriteLine("Hello World My name is Maciej"); Console.ReadKey(); } } } |
Na powyższym przykładzie aplikacji konsolowej można określić “części” z których składać będzie się każdy program napisany w C#.
Główne części to:
- deklaracja przestrzeni nazw,
- klasa,
- pole klasy,
- “Main” główna metoda naszego programu,
- instrukcja,
- komentarz,
Pierwszy fragment kodu programu począwszy od using System; – using pozwala nam na użycie w naszym programie przestrzeni nazw System. Każdy z naszych przyszłych programów będzie miał przeważnie kilka using ów (początkowe linie każdego kodu zaczynające się od 1 linii);
Kolejny fragment kodu to tzw “deklaracja przestrzeni nazw” określona przez słowo kluczowe (namespace). Namespace jest kolekcją różnych klas. Przestrzeń nazw HelloWorld zawiera w sobie klasę Program;
Ten fragment kodu to nic innego jak deklaracja klasy. Klasa Program zawiera z definicje metod używanych przez program. Klasy mogą zawierać wiele metod, które określają działanie klasy. Jak pewnie zauważyliście program ma tylko jedną metodę, metodę Main;
Następny fragment kodu definiuje nam główną metodę programu napisanego w języku C#, Main. Każdy z napisanych przez Ciebie program, przynajmniej na początku będzie zawierał tą metodę. Metoda główna definiuje zachowanie się klasy w momencie wykonania naszego programu;
Wszystkie zielone linie /*…*/ są komentarzami w kodzie. Te linie są ignorowane przez kompilator. W komentarzach umieszcza się istotne informacje o działaniu programu w konkretnym miejscu wykorzystywane po to aby każda osoba czytająca nasz kod wiedziała za co dana metoda jest odpowiedzialna bez wnikliwego czytania lini kodu.
Zachowanie metody Main określane jest poprzez:
Console.WriteLine(„Witaj Świecie”).
WriteLine jest metodą standardowej C#-powej klasy Console, która jest zdefiniowana w przestrzeni System. Metoda ta jest używana do wyświetlenia w naszej konsoli Informacji którą chcemy odbiorcy przekazać, w moim przypadku jest to: “Hello World My name is Maciej”.
Metoda ReadKey() jest używana aby zapobiec szybkiego zamknięcia konsoli po wyświetleniu wiadomości, poprzez oczekiwanie na wciśnięcie dowolnego klawisza.
A oto efekt napisanego kodu:
Co na tym etapie już należy zapamiętać, to to że w języku C# wszystkie deklaracje czy wyrażenia bądź instrukcje muszą zakończyć się średnikiem – “;”. Wśród programistów mówi się że “pisz kod tak, jakby twoje życie zależało od średnika”.
Ponadto pamiętać należy też że wielkość liter w C# ma znaczenie tzw Case sensitive.
Przejdźmy teraz do składni języka C#.
Tu rada, która jest powtarzana przez wszystkich programistów, najważniejszym co musisz zapamiętać to fakt iż C# jak i inne języki programowania został stworzony w języku angielskim i należy używać języka angielskiego w nazewnictwie.
Dla osób które “liznęli” ANSI C, C++ czy Java, składnia może wydawać się podobna.
Jednakże, C# jest językiem obiektowym, a to oznacza że program, który stworzymy, będzie składał się z wielu różnych obiektów, które będą na siebie oddziaływać za pomocą metod. Obiekty będziemy określać rodzajami czyli typami obiektów.
Napiszmy aplikację konsolową która obliczy dla nas proste zadanie z geometrii, a dokładniej obliczy nam obwód i pole prostokąta. Myślę że to jest figura która idealnie się wpisuje w mawianie obiektowości.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SimpleSyntax { class Program { static void Main(string[] args) { Prostokat p = new Prostokat(); p.SetSides(); p.ShowResults(); Console.ReadKey(); } class Prostokat { int lengthSideA; //parametr określający długość jednego z boków int lengthSideB; //parametr określający długość drugiego z boków //Metoda powalająca na wprowadzanie wartości boków prostokąta public void SetSides() { //metoda która podaje nam wartości boków prostokata lengthSideA = 5; lengthSideB = 8; } public int Circuit() { //obliczanie obwodu prostokata return (2 * lengthSideA) + (2 * lengthSideB); } public int SurfaceArea() // Obliczanie Pola Prostokata { return lengthSideA * lengthSideB; } public void ShowResults() { Console.WriteLine("Lenght side A: {0},", lengthSideA); Console.WriteLine("Lenght side B: {0},", lengthSideB); Console.WriteLine("Circuit: {0},", Circuit()); Console.WriteLine("Surface Area: {0},", SurfaceArea()); } } } } |
A o to rezultaty, które zwróci nasza aplikacja:
W naszym kodzie znajdują się poniższe elementy kodu:
Słowa Kluczowe:
Using – o których już wspominałem przy omawianiu Hello World.
Class – Słowo kluczowe służące do deklaracji naszej klasy.
Czym są słowa kluczowe? – to słowa zarezerwowane przez kompilator języka C#. Są to nazwy które nie mogą być używane jako identyfikatory.
Ponadto w naszym kodzie wykorzystaliśmy zmienne:
lengthSideA i lengthSiteB,
nazywane są też polami, które służą do przechowywania danych, w tym przypadku są to dane typu integer, czyli liczby całkowite.
O typach danych poświęcę następny rozdział bądź post.
Nasz kod zawiera również metody:
SetSides(), Circuit(), SurfaceArea() i ShowResults().
które odpowiadają za wykonywanie określonych zadań.
W kodzie powyżej w klasie Program, zawierającej metodę Main widzimy inicjowanie naszej klasy Prostokat.
W języku C# występują bądź też są wykorzystywane identyfikatory, służące do określania klasy, zmiennej, metody oraz wszystkich elementów które użytkownik/programista może zdefiniować w kodzie.
Mam nadzieje, że post przyda się wam w zrozumieniu struktury programu w C#.
Powyższy kod dostępny na GitHub.
Podobało się zostaw komentarz 🙂
Przydałby się listing, tak by można było skopiować kod, lub normalnie przeczytać bez włączania obrazka :/
Dobry pomysł. pomyślę o tym.
Dzięki za podpowiedź.
Pozdrawiam