Sobes.tech
Junior

Czym jest zakres (scoped) w C#?

sobes.tech AI

Odpowiedź od AI

Zasięg w C# określa dostępność zmiennych, metod i typów w określonej części programu. Jest to ograniczenie dotyczące tego, gdzie w kodzie można używać danego identyfikatora.

Główne obszary zasięgu:

  • Blok kodu: Zmienne zadeklarowane wewnątrz nawiasów { } są dostępne tylko w tym bloku.
  • Zasięg metody: Zmienne i parametry zadeklarowane wewnątrz metody są dostępne tylko w tej metodzie.
  • Zasięg klasy/struktury: Członkowie klasy lub struktury (pola, właściwości, metody) są dostępne w zależności od modyfikatorów dostępu (public, private, protected, internal).
  • Zasięg przestrzeni nazw: Typy zadeklarowane w przestrzeni nazw są dostępne w tej przestrzeni nazw i w innych przestrzeniach nazw, gdzie użyto using.
  • Zasięg zestawu: Typy z modyfikatorem internal są dostępne tylko w bieżącym zestawie.

Przykład zasięgu bloku kodu:

public void ExampleMethod()
{
    int x = 10; // x jest dostępne tylko w ExampleMethod
    if (x > 5)
    {
        int y = 20; // y jest dostępne tylko w bloku if
        Console.WriteLine(y);
    }
    // Console.WriteLine(y); // Błąd kompilacji: y nie jest dostępne tutaj
}