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
internalsą 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
}