Programowanie 3 - C#
Published on 17.10.2026 at 00:16
Last updated on 06.11.2026 at 14:00
W konsoli
Git
Pobieranie repozytorium z sgit: git clone <link>
Po zmianie: git add .
Co się zmieniło: git status
Komitowanie zmian: git commit -m "<comment>"
Pushowanie zmian: git push
dotnet CLI
Nowa solucja: dotnet new sln -n <solution_name>
.gitignore dla C#: dotnet new gitignore
Nowe projekty:
Konsolowy: dotnet new console -n <project_name>
Biblioteka klas: dotnet new classlib -n <project_name>
Testowy: dotnet new mstest -n <project_name>
Dodanie projektu do solucji: dotnet sln add <project_name>
Dodanie referencji do projektu: dotnet add <using_project> reference <referenced_project>
Uruchamianie projektu: dotnet run --project <project_name>
Uruchamianie testów: dotnet test <test_project>
Build projektu: dotnet build <project_name>
Build projektu w trybie Release: dotnet build <project_name> -c Release
Build z detalnym logowaniem: dotnet build <project_name> --verbosity detailed
Możliwe wartości to
q[uiet],m[inimal],n[ormal],d[etailed]idiag[nostic].
Logowanie do pliku: dotnet build <project_name> /flp:LogFile=build.log;Verbosity=diagnostic
Czyszczenie projektu: dotnet clean <project_name>
Publikacja projektu: dotnet publish <project_name> -c Release -o <output_path>
Typy w C#
Podstawowe
Bezpośrednie: int, uint, long, float, double, decimal, bool, char, struct, enum
Referencyjne: string, object, tablice np. int[], class, interface
Rzutowanie jawne:
int a = 10;
double b = (double)a; // jawne rzutowanie int na doubleOperacje logiczne: &&, ||, !
Klasa Convert: Convert.ToInt32, Convert.ToDouble, Convert.ToString, Convert.ToBoolean
StringBuilder:
using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("Hello");
sb.Append(" ");
sb.Append("World");
string result = sb.ToString(); // "Hello World"Wbudowany string:
Metody string: string.Length, string.Substring, string.IndexOf, string.Replace, string.ToUpper, string.ToLower, string.Trim, string.Split
Dosłowne literały: @"C:\Users\scoleridge\Documents\"
Surowe literały: """Hello"World"""
Interpolacja: $"Hello {name}"
Tablice:
Dla tablic jest właściwość Length oraz metody: Array.Sort, Array.Reverse, Array.IndexOf, Array.Find, Array.FindAll, Array.Exists, Array.ForEach, Array.Resize, Array.Clear, Array.Copy, Array.ConstrainedCopy, Array.BinarySearch
W tablicach można odnieść się do ostatniego elementu używając indeksu ^1, np. array[^1] zwróci ostatni element tablicy lub array[^2] przedostatni.
Można też używać zakresów, np. array[1..3] zwróci elementy od indeksu 1 do 2 (3 nie jest wliczane).
Tablice prostokątne (np. int[,] array = new int[3, 4];)
Object:
Każdy typ w C# dziedziczy po Object
Pakowanie (boxing) i rozpakowanie (unboxing):
int a = 10; // typ wartościowy
object obj = a; // pakowanie (boxing)
int b = (int)obj; // rozpakowanie (unboxing)Definicja Object:
public class Object
{
public Object();
public extern Type GetType();
public virtual bool Equals(object obj);
public static bool Equals(object objA, object objB);
public static bool ReferenceEquals(object objA, object objB);
public virtual int GetHashCode();
public virtual string ToString();
protected virtual void Finalize();
}Wartości domyślne
int defaultInt = default; // 0
bool defaultBool = default; // false
string defaultString = default; // null
int? defaultNullableInt = default; // null
Console.WriteLine(default(float)); // 0fNiejawne typy
var a = 10; // int
var b = "Hello"; // string
var c = new List<int>(); // List<int>
var d = new { Name = "John", Age = 30 }; // anonimowy typInstrukcje
switch
Instrukcja:
void TellMeAboutTheObject(object obj)
{
switch (obj)
{
case 0: // constant pattern
Console.WriteLine("It's a zero.");
break;
case string str: // type pattern
Console.WriteLine($"It's a string: {str}");
break;
// type pattern with case guard
case DateTime dt when dt.DayOfWeek == DayOfWeek.Monday:
Console.WriteLine("It's a Monday");
break;
default:
Console.WriteLine("IDK");
break;
}
}Wyrażenia:
type variable = input expression switch
{
pattern => candidate expression ,
pattern when condition => candidate expression ,
pattern => candidate expression
}foreach
int[] array = new int[] {0, 1, 2, 3, 4};
foreach (var i in array)
Console.WriteLine(i);
foreach (char c in "foreach")
Console.WriteLine(c);Linki
Wszystkie linki otwierają się w nowej karcie.