Menu
Coddy logo textTech

C# Cheat Sheet: ściąga z C#

Ostatnia aktualizacja

Hello World i struktura programu

Instrukcje najwyższego poziomu (od .NET 6) pozwalają pominąć szablonową klasę.

ElementKod
Program najwyższego poziomuConsole.WriteLine("Hello, World!");
Import przestrzeni nazwusing System;
Klasyczny punkt wejściastatic void Main(string[] args) { ... }
Wypisanie liniiConsole.WriteLine("text");
Odczyt liniistring s = Console.ReadLine();
Interpolacja łańcuchówConsole.WriteLine($"Hi {name}");
Komentarze// line i /* block */

Typy danych

TypOpis
int32-bitowa liczba całkowita ze znakiem
long64-bitowa liczba całkowita ze znakiem
double / floatLiczby zmiennoprzecinkowe
decimalLiczba dziesiętna wysokiej precyzji (pieniądze)
booltrue lub false
charPojedynczy znak Unicode
stringNiemutowalny tekst
varKompilator sam ustala typ
int?Typ wartościowy dopuszczający null

Zmienne

OperacjaSkładnia
Deklaracja i inicjalizacjaint x = 5;
Wnioskowanie typuvar name = "Ada";
Stałaconst double Pi = 3.14159;
Pole tylko do odczytureadonly int id;
Referencja dopuszczająca nullstring? maybe = null;
Operator ??var y = maybe ?? "default";
Operator ?.int? len = text?.Length;

Sterowanie przepływem

InstrukcjaSkładnia
If / elseif (x > 0) { ... } else { ... }
Instrukcja switchswitch (n) { case 1: ...; break; default: ...; }
Wyrażenie switchvar s = n switch { 1 => "one", _ => "other" };
Pętla whilewhile (i < n) { ... }
Pętla do-whiledo { ... } while (i < n);
Pętla forfor (int i = 0; i < n; i++) { ... }
Pętla foreachforeach (var item in list) { ... }
Break / continuebreak; wychodzi z pętli, continue; przechodzi do następnej iteracji

Metody

OperacjaSkładnia
Definicja metodyint Add(int a, int b) { return a + b; }
Metoda w postaci wyrażeniaint Add(int a, int b) => a + b;
Bez wartości zwracanejvoid Greet() { ... }
Parametr opcjonalnyint Pow(int b, int e = 2) { ... }
Argumenty nazwanePow(b: 2, e: 3);
Parametr outbool TryParse(string s, out int n) { ... }
Metoda statycznastatic int Square(int x) => x * x;
Wyrażenie lambdaFunc<int, int> f = x => x * 2;

Klasy i OOP

OperacjaSkładnia
Definicja klasyclass Dog { ... }
Właściwość automatycznapublic string Name { get; set; }
Właściwość tylko do odczytupublic int Id { get; }
Konstruktorpublic Dog(string name) { Name = name; }
Utworzenie obiektuvar d = new Dog("Rex");
Dziedziczenieclass Puppy : Dog { ... }
Interfejsinterface IRunnable { void Run(); }
Nadpisanie metodypublic override void Speak() { ... }
Rekord (niemutowalny)record Point(int X, int Y);

Kolekcje

Kolekcje generyczne z System.Collections.Generic.

TypZastosowanie i przykład
List<T>Tablica dynamiczna: list.Add(1); list.Count;
Dictionary<K, V>Klucz-wartość: dict["a"] = 1; dict.ContainsKey("a");
HashSet<T>Unikalne wartości: set.Add(5); set.Contains(5);
Queue<T>FIFO: q.Enqueue(x); q.Dequeue();
Stack<T>LIFO: s.Push(x); s.Pop();
Tablicaint[] nums = { 1, 2, 3 };
Inicjalizator kolekcjivar l = new List<int> { 1, 2, 3 };
Iteracja po słownikuforeach (var kv in dict) { kv.Key; kv.Value; }

LINQ

Płynne odpytywanie kolekcji; z System.Linq.

OperacjaSkładnia
Filtrowanienums.Where(n => n > 0)
Projekcja / mapowanienums.Select(n => n * 2)
Sortowanienums.OrderBy(n => n) / OrderByDescending(...)
Pierwsze dopasowanienums.First(n => n > 5) / FirstOrDefault(...)
Any / allnums.Any(n => n < 0) / nums.All(n => n > 0)
Zliczenie dopasowańnums.Count(n => n > 0)
Agregacjanums.Sum(), nums.Max(), nums.Average()
Grupowanieitems.GroupBy(i => i.Category)
Materializacja.ToList() / .ToArray()

Popularne wzorce (właściwości, async)

WzorzecSkładnia
Metoda asynchronicznaasync Task<int> GetAsync() { ... }
Oczekiwanie na zadanievar result = await GetAsync();
Try / catchtry { ... } catch (Exception e) { ... }
Finallyfinally { ... } wykonuje się zawsze
Using (zwalnianie zasobów)using var file = File.OpenRead(path);
Formatowanie łańcuchów$"Total: {amount:C}"
Klasa generycznaclass Box<T> { public T Value; }
Dopasowanie wzorcówif (obj is Dog d) { d.Bark(); }

Najczęściej używana składnia C#, kolekcje i zapytania LINQ na jednej stronie. Ten C# cheat sheet to szybka ściąga do pisania w C#: typy danych, sterowanie przepływem, klasy, kolekcje List/Dictionary, LINQ oraz wzorce właściwości i async typowe dla idiomatycznego kodu .NET.

Wszystko tutaj to standardowy C# na platformie .NET, który uruchomisz przez CLI dotnet. Skopiuj to, czego potrzebujesz, albo uruchom dowolny fragment w edytorze online C#, bez instalowania SDK.

C# cheat sheet: najczęstsze pytania

Czy ten C# cheat sheet jest darmowy?
Tak. Ta ściąga z C# jest całkowicie darmowa i nie wymaga rejestracji. Dodaj ją do zakładek i wracaj, gdy potrzebujesz sprawdzić składnię, kolekcję albo metodę LINQ.
Czym różnią się typy wartościowe od referencyjnych w C#?
Typy wartościowe (int, double, bool, struct, enum) przechowują dane bezpośrednio i są kopiowane przy przypisaniu lub przekazaniu do metody, więc zmiana kopii nie wpływa na oryginał. Typy referencyjne (class, string, tablice, List<T>) przechowują referencję do danych na stercie, więc dwie zmienne mogą wskazywać ten sam obiekt, a zmiana przez jedną jest widoczna przez drugą. string jest typem referencyjnym, ale zachowuje się jak niemutowalny.
Czym jest LINQ i kiedy go używać?
LINQ (Language Integrated Query) to zestaw metod, takich jak Where, Select i OrderBy, które pozwalają filtrować, przekształcać i agregować kolekcje czytelnymi, łańcuchowymi wywołaniami zamiast ręcznych pętli. Używaj go wszędzie tam, gdzie inaczej trzeba by napisać pętlę budującą przefiltrowaną lub przekształconą listę: jest zwięzły i wyliczany leniwie, dopóki nie wywołasz ToList() albo nie zaczniesz iterować.
Czy mogę ćwiczyć C# online?
Tak. Otwórz edytor online C#, aby uruchomić dowolny fragment z tej ściągi w przeglądarce, bez instalowania SDK. Gdy chcesz uczyć się bardziej systematycznie, darmowy interaktywny kurs C# w Coddy prowadzi krok po kroku od zmiennych i pętli do klas, kolekcji i LINQ.
Czy ta ściąga nadaje się dla początkujących?
Tak. Jest ułożona od najczęstszych elementów (typy, sterowanie przepływem, metody) do bardziej zaawansowanych (LINQ, async, typy generyczne), więc górnych sekcji możesz używać od pierwszego dnia, a resztę poznawać z czasem.
Ilustracja języków programowania w Coddy

Naucz się języka C# z Coddy

ZACZNIJ