Jeśli ostatni raz programowałeś w C# w 2015 roku, przygotuj się na szok. C# przeszedł rewolucję. To już nie ten sam język. Jeśli dopiero zaczynasz swoją przygodę z programowaniem – masz szczęście! Uczysz się najnowocześniejszej wersji języka, który dominuje w enterprise, cloud, grach (Unity), mobile (MAUI), web (ASP.NET Core) i AI (ML.NET).
🔍 Dlaczego C# w 2026 roku?
C# to nie tylko język do aplikacji desktopowych! W 2026 roku C# jest wszędzie:
✅ Web – ASP.NET Core (jeden z najszybszych frameworków webowych!)
✅ Mobile – .NET MAUI (Android, iOS, Windows, Mac z jednego kodu!)
✅ Games – Unity (najpopularniejszy silnik gier używa C#)
✅ Desktop – WPF, WinForms, Avalonia
✅ AI/ML – ML.NET, integracja z Azure AI
✅ IoT – .NET nanoFramework dla mikrokontrolerów
Bonus: C# jest jednym z najlepiej płatnych języków programowania! 💰
Ten wpis to początek Twojej podróży. Nauczysz się wszystkiego od podstaw, ale w nowoczesny sposób. Zapomnij o starych wzorcach z 2015 roku. Pokażę Ci jak programuje się w C# w 2026 roku.
Co się zmieniło od 2015 roku?
📅 Podróż przez czas: C# 6.0 (2015) → C# 14 (2026)
W 2015 roku mieliśmy C# 6.0 i .NET Framework 4.6. Dziś mamy C# 14 i .NET 10. To 8 głównych wersji języka!
Najważniejsze zmiany
Wersja C#
Rok
Kluczowe nowości
C# 6.0
2015
String interpolation, null-conditional operator
C# 7.0-7.3
2017
Tuples, pattern matching, local functions
C# 8.0
2019
Nullable reference types, switch expressions
C# 9.0
2020
Records, top-level statements, init properties
C# 10
2021
Global usings, file-scoped namespaces
C# 11
2022
Raw string literals, list patterns, required members
C# 12
2023
Primary constructors, collection expressions
C# 13
2024
Partial properties, params collections
C# 14
2025/2026
Extension members, field keyword, implicit span, null-conditional assignment
💡 C# 14 - Co nowego?
Najważniejsze features z C# 14 które będziemy używać w tym kursie:
field keyword – dostęp do backing field w auto-properties (koniec z private string _name;!)
Extension members – extension properties i operators (nie tylko metody!)
Implicit span conversions – automatyczna konwersja do Span<T>
User-defined compound operators – własne operatory +=, -=
Partial constructors/events – więcej elastyczności z partial
Lambda parameter modifiers – ref, in, out w lambdach
Wszystkie te features poznasz w kolejnych wpisach! 🚀
🔍 Nie panikuj!
Widzisz te wszystkie wersje i myślisz "niemożliwe do nauczenia się"? Spokojnie!
Większość z tych funkcji to usprawnienia składni – pozwalają pisać ten sam kod krócej i czytelniej. Nie musisz znać wszystkiego od razu. W tym kursie nauczysz się wszystkiego krok po kroku, w naturalny sposób.
Nasza strategia: Zawsze pokażę Ci nowoczesny sposób (C# 14), ale wyjaśnię też jak to działało wcześniej, żebyś rozumiał ewolucję języka. 🎯
.NET Framework vs .NET Core vs .NET
Krótka historia .NET
🔍 Co to jest .NET?
.NET to platforma (framework), na której działają programy napisane w C#. Myśl o tym jak o silniku samochodu – C# to kierownica i pedały (język), a .NET to silnik (platforma wykonawcza).
.NET zawiera:
Runtime – środowisko uruchomieniowe (CLR - Common Language Runtime)
Biblioteki – tysiące gotowych klas do różnych zadań
Kompilator – tłumaczy Twój kod C# na kod maszynowy
Narzędzia – CLI, debugger, profiler
📅 Ewolucja .NET:
2002-2019: .NET Framework – oryginalny .NET, tylko Windows, ciężki, monolityczny
Wybierz .NET 10 SDK (najnowsza wersja) dla Twojego systemu operacyjnego (Windows, macOS, Linux).
⚠️ Uwaga: Upewnij się że pobierasz SDK, nie Runtime!
Krok 2: Zainstaluj SDK
Uruchom instalator i postępuj zgodnie z instrukcjami. Instalacja zajmie kilka minut.
Krok 3: Sprawdź instalację
Otwórz terminal (Command Prompt na Windows, Terminal na Mac/Linux) i wpisz:
dotnet --version
Powinieneś zobaczyć numer wersji, np.:
10.0.0
Jeśli widzisz numer wersji – gratulacje! ✅ Masz zainstalowane .NET 10 SDK!
💡 Wskazówka:
Możesz mieć zainstalowanych wiele wersji .NET równocześnie. Sprawdź wszystkie zainstalowane wersje:
dotnet --list-sdks
Każdy projekt może używać innej wersji .NET! To jest mega wygodne. 🎯
Wybór edytora kodu
Visual Studio 2026 - Profesjonalne IDE
W tym kursie będziemy używać Visual Studio 2026 - najnowszego, najpotężniejszego IDE dla C# na świecie. Visual Studio 2026 został wydany w grudniu 2025 i jest zaprojektowane specjalnie dla .NET 10 i C# 14.
🎯 Dlaczego Visual Studio 2026?
✅ AI-native IDE – wbudowany GitHub Copilot, inteligentne sugestie
✅ Najszybsze w historii – 30% szybsze uruchamianie vs VS 2022
✅ .NET 10 i C# 14 – pełne wsparcie od dnia pierwszego
✅ Nowoczesny Fluent UI – 11 nowych motywów kolorystycznych
✅ Side-by-side – instaluje się obok VS 2022 bez konfliktów
✅ Visual designers – dla WPF, WinForms, XAML
✅ Najlepszy debugger – nie ma lepszego debuggera dla C#
✅ Community Edition DARMOWA – pełna wersja za $0!
⚠️ Visual Studio vs Visual Studio Code - ważne!
To są DWIE RÓŻNE aplikacje:
Visual Studio 2026 – pełne IDE dla C# (używamy tego w kursie!)
Visual Studio Code – lekki edytor tekstu (świetny do frontendu, JS)
W tym kursie o C# używamy Visual Studio 2026 (pełne IDE), NIE VS Code!
ImplicitUsingsenable – automatyczne "using System;" i inne
Nullableenable – włączona ochrona przed null (MEGA WAŻNE! 🔥)
⚠️ ImplicitUsings – co to?
W starym C# (2015) musiałeś na początku każdego pliku pisać:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// ... i więcej
W C# 10+ z ImplicitUsings kompilator automatycznie dodaje najczęściej używane usings! Nie musisz ich pisać. ✅
Możesz nadal dodawać własne usings gdy potrzebujesz:
using System.Net.Http; // dla HttpClient
Console.WriteLine("Hello!");
Podstawy składni C# – pisanie kodu
Wypisywanie tekstu na ekran
Zmień kod w Program.cs:
Console.WriteLine("Witaj w świecie C#!");
Console.WriteLine("To jest mój pierwszy program.");
Console.Write("To nie przechodzi do nowej linii. ");
Console.Write("Widzisz?\n");
Uruchom (dotnet run). Zobaczysz:
Witaj w świecie C#!
To jest mój pierwszy program.
To nie przechodzi do nowej linii. Widzisz?
🔍 WriteLine vs Write
Console.WriteLine() – wypisuje tekst i przechodzi do nowej linii
Console.Write() – wypisuje tekst bez nowej linii
\n – znak nowej linii (można użyć ręcznie)
Komentarze
// To jest komentarz jednoliniowy
// Kompilator go ignoruje
/*
To jest komentarz wieloliniowy.
Może mieć wiele linii.
*/
Console.WriteLine("Hello!"); // Komentarz może być na końcu linii
/// <summary>
/// To jest komentarz XML dokumentacji.
/// Używany do dokumentowania kodu.
/// </summary>
💡 Kiedy używać komentarzy?
Dobry komentarz wyjaśnia DLACZEGO, nie CO:
// ❌ Źle – komentarz mówi co kod robi (to widać!)
int x = 5; // Przypisz 5 do x
// ✅ Dobrze – komentarz wyjaśnia DLACZEGO
int maxRetries = 5; // API czasem failuje, retry 5x zanim zgłosimy błąd
Złota zasada: Piszesz kod tak czytelnie, że nie potrzebuje komentarzy. Komentarze tylko dla nietypowych sytuacji. 🎯
Średniki i białe znaki
// ✅ Każda instrukcja kończy się średnikiem
Console.WriteLine("Hello");
Console.WriteLine("World");
// ✅ Białe znaki (spacje, taby, nowe linie) są ignorowane
Console.WriteLine("Hello");
Console.WriteLine( "World" );
Console.
WriteLine
(
"Działa!"
);
// ❌ Brak średnika = błąd kompilacji
Console.WriteLine("Błąd!") // ERROR: ; expected
Case sensitivity (wielkość liter ma znaczenie!)
Console.WriteLine("Hello"); // ✅ Poprawnie
console.WriteLine("Hello"); // ❌ BŁĄD! 'console' nie istnieje (małe 'c')
// C# rozróżnia wielkość liter!
int liczba = 5;
int Liczba = 10; // To są DWA RÓŻNE zmienne!
Console.Write("Podaj swoje imię: ");
string imie = Console.ReadLine();
Console.Write("Podaj swój rok urodzenia: ");
string rokTekst = Console.ReadLine();
int rokUrodzenia = int.Parse(rokTekst);
int obecnyRok = 2026;
int wiek = obecnyRok - rokUrodzenia;
Console.WriteLine($"Cześć {imie}! Masz około {wiek} lat.");
Przykład działania:
Podaj swoje imię: Anna
Podaj swój rok urodzenia: 1995
Cześć Anna! Masz około 31 lat.
🔍 Nowe rzeczy w tym kodzie:
int.Parse() – konwertuje string na liczbę całkowitą (int)
int wiek = ... – obliczenia matematyczne
Wiele zmiennych używanych razem
⚠️ Co jeśli użytkownik wpisze coś złego?
Jeśli użytkownik wpisze "abc" zamiast roku, program się wysypie:
Unhandled exception. System.FormatException: Input string was not in a correct format.
To jest normalne! Nauczymy się obsługi błędów w późniejszych wpisach (try/catch). Na razie zakładamy że użytkownik wpisuje poprawne dane. 👍
Podsumowanie
Gratuluję! To był intensywny, ale ważny wpis. Nauczyłeś się:
✅ Historia C# – ewolucja od C# 6.0 (2015) do C# 14 (2026)
✅ .NET Framework vs .NET – dlaczego porzuciliśmy stary .NET
✅ Instalacja .NET 10 SDK – dotnet CLI, sprawdzanie wersji
✅ Wybór edytora – VS Code, Visual Studio 2022, Rider
✅ Top-level statements – nowoczesny sposób pisania programów (1 linia zamiast 11!)
✅ Struktura projektu – .csproj, ImplicitUsings, Nullable
✅ String interpolation – $"Hello {name}!" zamiast konkatenacji
✅ Pierwszy program interaktywny – kalkulator wieku
W kolejnym wpisie zagłębimy się w typy danych w nowoczesnym C# – nullable reference types, init-only properties, required members i target-typed new expressions!
Zadanie dla Ciebie 🎯
Stwórz prosty program który:
Pyta użytkownika o imię
Pyta o ulubiony kolor
Pyta o ulubioną liczbę
Wypisuje podsumowanie w formacie: "Cześć [imię]! Twój ulubiony kolor to [kolor] a ulubiona liczba to [liczba]."
🎯 BONUS: Mini-projekt – Wizytówka osobista
Stwórz program który wyświetla Twoją "wizytówkę" w konsoli: