HomeFedun.SiteGitHubTelegram

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] i diag[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 double

Operacje 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)); // 0f

Niejawne typy

var a = 10; // int
var b = "Hello"; // string
var c = new List<int>(); // List<int>
var d = new { Name = "John", Age = 30 }; // anonimowy typ

Instrukcje

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.

C#@MINI po polsku

Dokumentacja C# od Microsoft

Dokumentacja języka C# od Microsoft

Dokumentacja .NET od Microsoft