Zanim napiszesz pierwszą linijkę kodu, warto wiedzieć, czego właściwie się uczysz i czym. W tej lekcji poznasz język C#, platformę .NET oraz narzędzia, w których będziemy pracować przez cały kurs. Na koniec utworzysz i uruchomisz swój pierwszy projekt.
Czego się dziś nauczysz
- Wyjaśnisz różnicę między językiem C# a platformą .NET
- Wymienisz co najmniej cztery rodzaje programów pisanych w C#
- Wskażesz, czym różni się .NET Framework od współczesnego .NET
- Zainstalujesz środowisko i utworzysz projekt konsolowy
- Uruchomisz program i znajdziesz plik wynikowy na dysku
Czym jest C#
C# (czytamy „si szarp”) to język programowania stworzony w firmie Microsoft. Pierwsza wersja powstała w 2000 roku, a jego głównym projektantem jest Anders Hejlsberg — ten sam, który wcześniej zaprojektował Turbo Pascala i Delphi, a później TypeScript.
Nazwa pochodzi od muzycznego krzyżyka ♯, który podwyższa dźwięk o pół tonu. Miała sugerować, że C# to „podwyższone C” — język wywodzący się z rodziny C, ale nowocześniejszy.
Cechy, które będą dla ciebie ważne
| Cecha | Co to dla ciebie oznacza w praktyce |
|---|---|
| Typowanie statyczne | Każda zmienna ma z góry określony typ, a kompilator sprawdza go jeszcze przed uruchomieniem programu. Dzięki temu wiele błędów wychodzi już w edytorze, a nie dopiero u użytkownika. |
| Obiektowość | Program budujesz z klas i obiektów, które odwzorowują rzeczy ze świata rzeczywistego — ucznia, konto bankowe, samochód. To temat bloku 7 tego kursu. |
| Automatyczne zarządzanie pamięcią | Nie musisz ręcznie zwalniać pamięci, jak w C czy C++. Robi to za ciebie garbage collector — mechanizm, który usuwa obiekty, gdy przestają być potrzebne. |
| Wieloplatformowość | Ten sam kod uruchomisz na Windowsie, Linuksie i macOS. Nie było tak zawsze — wróć do tego przy tabeli z historią .NET. |
| Składnia z rodziny C | Klamry { }, średniki, if, for. Jeśli poznasz C#, dużo łatwiej wejdziesz potem w Javę, JavaScript czy Kotlina. |
Język żyje i zmienia się co roku
Nowa wersja C# wychodzi mniej więcej co roku w listopadzie, razem z nową wersją .NET. Co druga wersja .NET jest oznaczana jako LTS (ang. long-term support) i jest wspierana trzy lata — to te wybiera się do poważnych projektów.
Nie ucz się numerów na pamięć. Ważniejsze jest, żebyś umiał sprawdzić, której wersji używasz — pokażemy to w zadaniu 3.
Czym jest .NET i czym różni się od C#
To rozróżnienie myli wiele osób na starcie, więc warto je ustawić od razu.
C# to język
Zbiór reguł: jak zapisać pętlę, jak zadeklarować zmienną, gdzie postawić średnik. Sam w sobie nic nie potrafi — to gramatyka.
.NET to platforma
Gotowe klocki i silnik: biblioteka tysięcy gotowych klas (obsługa plików, tekstu, sieci, dat) plus środowisko, które uruchamia twój program.
Analogia: C# jest jak język polski, a .NET jak biblioteka wraz z całą infrastrukturą wydawniczą. Znajomość gramatyki pozwala budować zdania, ale to biblioteka daje ci gotowe książki, z których korzystasz, żeby nie pisać wszystkiego od zera.
Kiedy piszesz Console.WriteLine("Cześć"), to Console nie jest częścią języka C# — to gotowa klasa z biblioteki .NET. Językiem są tylko nawiasy, kropka i średnik.
Skąd wzięły się różne „.NET-y”
| Nazwa | Lata | Co warto wiedzieć |
|---|---|---|
| .NET Framework | 2002–2019 | Pierwsza wersja, tylko Windows. Ostatnie wydanie to 4.8. Nadal działa w starych firmowych aplikacjach, ale nowych projektów się w niej nie zaczyna. |
| .NET Core | 2016–2019 | Napisany od nowa, otwartoźródłowy i wieloplatformowy. Wersje 1.0–3.1. |
| .NET 5 i nowsze | 2020 → | Połączenie obu linii w jedną. Z nazwy zniknęło słowo „Core”, a numer 4 pominięto, żeby nie mylił się z Frameworkiem 4.8. Kolejne wersje wychodzą co roku. |
Uwaga przy szukaniu w internecie
Wiele poradników i odpowiedzi na forach pochodzi jeszcze z czasów .NET Framework. Kod stamtąd zwykle zadziała, ale bywa niepotrzebnie długi albo zawiera rozwiązania, które dziś robi się prościej. Jeśli przykład zaczyna się od using System; i klasy Program — to zwykle znak, że jest starszy. Nie znaczy „zły”, ale warto sprawdzić datę.
Gdzie naprawdę używa się C#
Aplikacje okienkowe
Programy z oknami na Windowsa: WPF, WinForms, WinUI. To kierunek, w którym pójdziemy po tym kursie.
Aplikacje internetowe
ASP.NET Core — strony, sklepy i API, czyli usługi, z których korzystają aplikacje mobilne.
Gry
Silnik Unity używa C# jako języka skryptowego. Powstały w nim m.in. Cuphead, Hollow Knight i Among Us.
Aplikacje mobilne
.NET MAUI — jeden kod na Androida i iOS. Następca technologii Xamarin.
Programy narzędziowe
Aplikacje konsolowe: skrypty, konwertery, narzędzia administracyjne. Od nich zaczniemy.
Chmura i usługi
Programy działające na serwerach, w tym w chmurze Microsoft Azure.
Dlaczego cały kurs w konsoli?
Bo aplikacja konsolowa nie rozprasza. Nie ma przycisków, okien ani układu graficznego — jest tylko twój kod i wynik. Wszystkiego, czego się tu nauczysz, użyjesz później w aplikacjach okienkowych; okno to tylko inny sposób pokazania tego samego wyniku.
W czym będziemy pracować
Visual Studio Community
To pełne środowisko programistyczne (ang. IDE — Integrated Development Environment) i główne narzędzie tego kursu. Wersja Community jest darmowa dla uczniów, studentów, projektów otwartoźródłowych i małych firm.
Podczas instalacji instalator zapyta, jakie obciążenia (ang. workloads) chcesz zainstalować. Na nasze potrzeby wystarczy jedno:
Zaznacz przy instalacji
„Programowanie na komputery klasyczne za pomocą platformy .NET” (ang. .NET desktop development). Zawiera kompilator, biblioteki, debuger i szablony projektów konsolowych oraz WPF — czyli wszystko, czego potrzebujesz na ten kurs i na następny.
Reszty na razie nie zaznaczaj — każde obciążenie to kilka gigabajtów na dysku.
Czego jeszcze możesz spotkać
| Narzędzie | Do czego służy |
|---|---|
| Visual Studio Code | Lekki edytor, wieloplatformowy. Do C# wymaga rozszerzenia C# Dev Kit. Wygodny na Linuksie i macOS, ale ma mniej ułatwień niż pełne Visual Studio. |
| JetBrains Rider | Płatne IDE (darmowe dla uczniów i studentów po weryfikacji). Bardzo dobre, ale zacznij od Visual Studio — na egzaminie i w szkole to ono jest standardem. |
| .NET SDK | Sam zestaw narzędzi bez środowiska graficznego: kompilator i polecenie dotnet. Visual Studio instaluje go automatycznie. |
| NuGet | Menedżer pakietów — pozwala dodać do projektu gotową bibliotekę napisaną przez kogoś innego. Wbudowany w Visual Studio. |
Pierwszy projekt krok po kroku
Tworzenie projektu w Visual Studio
- Uruchom Visual Studio i wybierz Utwórz nowy projekt
- W polu wyszukiwania wpisz
konsoli wybierz Aplikacja konsolowa z etykietą C# - Nazwij projekt
PierwszyProgrami wskaż folder, w którym go zapiszesz - W polu Struktura zostaw najnowszą wersję oznaczoną LTS
- Kliknij Utwórz
Uważaj na dwie pułapki na tym ekranie
Nie wybierz szablonu z dopiskiem (.NET Framework) — to ta stara, windowsowa wersja z tabeli wyżej. Szablon bez dopisku jest tym właściwym.
Sprawdź język. Obok nazwy szablonu widnieje etykieta języka. Istnieje identycznie nazwany szablon dla Visual Basica — kod z tego kursu w nim nie zadziała.
Co zobaczysz
Visual Studio otworzy plik Program.cs z takim kodem:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Zmieńmy to na coś swojego:
Console.WriteLine("Witaj w kursie C#!");
Console.WriteLine("Nazywam się Grzegorz.");
Console.WriteLine("To mój pierwszy program.");
Witaj w kursie C#!
Nazywam się Grzegorz.
To mój pierwszy program.
Omówienie
| Fragment | Co robi |
|---|---|
Console | Gotowa klasa z biblioteki .NET, która reprezentuje okno konsoli. To nie jest część języka C#, tylko element platformy. |
. | Kropka oznacza „sięgnij do środka”. Czytaj: „z klasy Console weź WriteLine„. |
WriteLine | Metoda, czyli gotowe polecenie. Wypisuje tekst i przechodzi do nowej linii. Istnieje też Write, które zostaje w tej samej linii. |
("…") | W nawiasie podajemy dane dla metody. Tekst zapisujemy w cudzysłowie prostym ", nie w polskim „ „. |
; | Średnik kończy instrukcję. Bez niego kompilator zgłosi błąd CS1002. |
Uruchamianie
| Sposób | Kiedy używać |
|---|---|
| Ctrl + F5 Uruchom bez debugowania | Domyślnie tego używaj. Okno konsoli zostaje otwarte po zakończeniu programu i czeka na klawisz — zdążysz przeczytać wynik. |
| F5 Uruchom z debugowaniem | Gdy chcesz zatrzymać program w wybranym miejscu i podejrzeć wartości zmiennych. Bez punktu wstrzymania okno zamknie się natychmiast po zakończeniu. |
Znikające okno konsoli
Jeśli okno mignęło i zniknęło, prawie na pewno uruchomiłeś program klawiszem F5. Program po prostu się skończył, a okno zamknęło się razem z nim — to nie jest błąd. Użyj Ctrl + F5.
Co zwykle idzie nie tak na starcie
| Objaw | Przyczyna i rozwiązanie |
|---|---|
| Okno konsoli znika natychmiast | Uruchomienie klawiszem F5 zamiast Ctrl + F5. |
| Polskie znaki wyświetlają się jako krzaki | Konsola używa starszego kodowania. W nowszych wersjach Windowsa problem zwykle nie występuje; jeśli wystąpi, wróć do tego po lekcji o kodowaniu plików — tam wyjaśniamy, skąd się bierze. |
Kompilator nie widzi klasy Console |
Prawdopodobnie utworzyłeś projekt w Visual Basicu albo wybrałeś szablon biblioteki zamiast aplikacji konsolowej. Załóż projekt od nowa, pilnując etykiety języka. |
| Program się nie uruchamia, a na dole jest lista błędów | Kliknij dwukrotnie pierwszy błąd na liście — Visual Studio przeniesie kursor w miejsce problemu. Zawsze poprawiaj od pierwszego: kolejne często są jego skutkiem i znikną same. |
| Cudzysłów podkreślony na czerwono | Wpisany polski cudzysłów „ ” zamiast prostego ". Zdarza się przy kopiowaniu tekstu z dokumentu Word albo ze strony internetowej. |
Zadania
Zainstaluj Visual Studio Community z obciążeniem „Programowanie na komputery klasyczne za pomocą platformy .NET”. Utwórz projekt konsolowy o nazwie PierwszyProgram i uruchom go klawiszami Ctrl + F5.
na co zwrócić uwagę
Jeśli Visual Studio jest już zainstalowane, ale brakuje szablonów C#, uruchom Visual Studio Installer (osobny program w menu Start), kliknij Modyfikuj i dopiero tam dodaj brakujące obciążenie.
Zapamiętaj ścieżkę, w której zapisałeś projekt — przyda się w zadaniu 4.
Zmień kod tak, aby program wypisał cztery linie: twoje imię, klasę, szkołę i powód, dla którego uczysz się programować. Ostatnią linię wypisz dwiema instrukcjami zamiast jedną.
pokaż rozwiązanie
Console.WriteLine("Imię: Anna");
Console.WriteLine("Klasa: 2 TI");
Console.WriteLine("Szkoła: ZSMI Lębork");
Console.Write("Uczę się programować, bo ");
Console.WriteLine("chcę tworzyć własne gry.");
Dwie ostatnie instrukcje skleją się w jedną linię, bo Write nie przechodzi do nowego wiersza — kursor zostaje tuż za wypisanym tekstem. Zwróć uwagę na spację przed cudzysłowem zamykającym w pierwszej części: bez niej wyszłoby „bochcę”.
Sprawdź, na jakiej wersji .NET działa twój projekt. Zrób to na dwa sposoby: przez okno właściwości projektu w Visual Studio oraz przez wiersz poleceń.
pokaż rozwiązanie
Sposób 1 — Visual Studio. Kliknij prawym przyciskiem nazwę projektu w oknie Eksplorator rozwiązań → Właściwości. Wersja jest w polu Platforma docelowa.
Sposób 2 — wiersz poleceń. Otwórz Wiersz polecenia lub PowerShell i wpisz:
dotnet --version
dotnet --list-sdks
Pierwsze polecenie pokaże wersję zestawu narzędzi, drugie — wszystkie zainstalowane. Jeśli komputer nie rozpoznaje polecenia dotnet, oznacza to, że zestaw .NET SDK nie jest zainstalowany albo nie został dopisany do zmiennej PATH.
Możesz też zajrzeć do pliku projektu: w Eksploratorze rozwiązań kliknij dwukrotnie nazwę projektu — otworzy się plik .csproj z wpisem TargetFramework.
Odszukaj na dysku folder swojego projektu. Znajdź w nim podfolder bin, a w środku plik wykonywalny. Uruchom go dwukrotnym kliknięciem — poza Visual Studio. Zanotuj pełną ścieżkę.
pokaż rozwiązanie
Ścieżka wygląda mniej więcej tak:
PierwszyProgram\bin\Debug\net10.0\PierwszyProgram.exe (numer wersji zależy od tego, co wybrałeś przy tworzeniu projektu).
Obok pliku .exe leży plik .dll o tej samej nazwie. To właśnie on zawiera twój skompilowany kod — a .exe jest tylko małym programem uruchamiającym. Dlaczego tak jest, wyjaśnimy w następnej lekcji.
Zapamiętaj tę ścieżkę. Wrócimy do niej w bloku o plikach: gdy program zapisuje plik bez podania pełnej ścieżki, plik ląduje właśnie tutaj, a nie obok Program.cs. To najczęstsze zdziwienie na tamtych lekcjach.
Wybierz trzy programy, z których korzystasz — mogą to być gry, aplikacje na telefonie albo programy na komputerze. Spróbuj ustalić, w czym zostały napisane, i zapisz źródło informacji. Do której z technologii wymienionych w sekcji „Gdzie naprawdę używa się C#” pasuje każdy z nich?
wskazówka
W przypadku gier pomaga ekran startowy — silnik Unity zwykle wyświetla swoje logo przy uruchomieniu. Bywa też, że w folderze gry są pliki UnityPlayer.dll albo katalog *_Data.
W programach na Windowsa obecność wielu plików .dll obok pliku .exe i pliku o nazwie kończącej się na .runtimeconfig.json to mocna wskazówka, że masz do czynienia z aplikacją .NET.
To zadanie nie ma jednej poprawnej odpowiedzi — chodzi o to, żebyś nauczył się szukać i weryfikować informacje, a nie zgadywać.
Co trzeba zapamiętać
- C# to język — reguły zapisu. .NET to platforma — gotowe biblioteki i środowisko uruchomieniowe.
Consolepochodzi z biblioteki .NET, a nie z samego języka C#.- C# jest typowany statycznie: kompilator sprawdza typy przed uruchomieniem programu, więc wiele błędów wychodzi już w edytorze.
- .NET Framework (do 4.8) działa tylko na Windowsie i jest technologią zamkniętą. Współczesny .NET jest wieloplatformowy i wychodzi co roku.
- Wersje LTS mają dłuższe wsparcie — to je wybiera się do projektów, które mają żyć dłużej.
- W C# pisze się aplikacje konsolowe, okienkowe, internetowe, mobilne i gry. Zaczynamy od konsoli, bo nic nie rozprasza.
- Program uruchamiamy klawiszami Ctrl + F5, żeby okno konsoli nie zamykało się od razu.
- Skompilowany program trafia do folderu
bin\Debug\. Warto zapamiętać to miejsce.