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.

C# .NET Visual Studio 30 min
CEL LEKCJI

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
TEORIA

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

CechaCo 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.

TEORIA

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”

NazwaLataCo warto wiedzieć
.NET Framework2002–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 Core2016–2019 Napisany od nowa, otwartoźródłowy i wieloplatformowy. Wersje 1.0–3.1.
.NET 5 i nowsze2020 → 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ę.

TEORIA

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.

NARZĘDZIA

W czym będziemy pracować

Visual Studio Community

To pełne środowisko programistyczne (ang. IDEIntegrated 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ędzieDo czego służy
Visual Studio CodeLekki 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 RiderPł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 SDKSam zestaw narzędzi bez środowiska graficznego: kompilator i polecenie dotnet. Visual Studio instaluje go automatycznie.
NuGetMenedżer pakietów — pozwala dodać do projektu gotową bibliotekę napisaną przez kogoś innego. Wbudowany w Visual Studio.
PRZYKŁAD Z OMÓWIENIEM

Pierwszy projekt krok po kroku

Tworzenie projektu w Visual Studio

  • Uruchom Visual Studio i wybierz Utwórz nowy projekt
  • W polu wyszukiwania wpisz konsol i wybierz Aplikacja konsolowa z etykietą C#
  • Nazwij projekt PierwszyProgram i 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:

Program.cs
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

Zmieńmy to na coś swojego:

Program.cs
Console.WriteLine("Witaj w kursie C#!");
Console.WriteLine("Nazywam się Grzegorz.");
Console.WriteLine("To mój pierwszy program.");
wynik w konsoli
Witaj w kursie C#!
Nazywam się Grzegorz.
To mój pierwszy program.

Omówienie

FragmentCo robi
ConsoleGotowa 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„.
WriteLineMetoda, 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óbKiedy 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.

CZĘSTE PROBLEMY

Co zwykle idzie nie tak na starcie

ObjawPrzyczyna 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

Zadania

ZAD 1Środowisko gotowe do pracy★☆☆

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.

ZAD 2Wizytówka★☆☆

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ę”.

ZAD 3Jakiej wersji używasz?★★☆

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:

wiersz poleceń
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.

ZAD 4Gdzie mieszka twój program★★☆

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.

ZAD 5Rozpoznaj technologię★★☆

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ć.

PODSUMOWANIE

Co trzeba zapamiętać

  • C# to język — reguły zapisu. .NET to platforma — gotowe biblioteki i środowisko uruchomieniowe.
  • Console pochodzi 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.