Junior
Ҳудуд (scoped) дар C# чист?
sobes.tech AI
Ҷавоб аз AI
Дарои назорат дар C# муайян мекунад, ки тағйирёбҳо, усулҳо ва намудҳо дар кадом қисми барнома дастрас мебошанд. Ин маҳдудиятест дар бораи он, ки дар куҷо дар код муайянкунанда истифода бурда мешавад.
Бастаи асосии дарки:
- Блоки код: Тағйирёбҳо, ки дар дохили сӯрохиҳои
{ }эълон шудаанд, танҳо дар дохили ҳамин блок дастрас мебошанд. - Дараҷаи усул: Тағйирёбҳо ва параметрҳо, ки дар дохили усул эълон шудаанд, танҳо дар дохили ҳамин усул дастрас мебошанд.
- Дараҷаи синф/структура: Узвҳои синф ё структура (майдонҳо, хусусиятҳо, усулҳо) вобаста ба тағйирёбандаҳои дастрасӣ (public, private, protected, internal) дастрас мебошанд.
- Дараҷаи фазои ном: Намудиҳо, ки дар фазои ном эълон шудаанд, дар ин фазо ва дар дигар фазоҳои ном, ки
usingистифода мешаванд, дастрас мебошанд. - Дараҷаи маҷмӯъ: Намудиҳо бо тағйирёбандаи
internalтанҳо дар дохили маҷмӯъи ҳозира дастрас мебошанд.
Масалан, дарки блоки код:
public void ExampleMethod()
{
int x = 10; // x танҳо дар дохили ExampleMethod дастрас аст
if (x > 5)
{
int y = 20; // y танҳо дар дохили блоки if дастрас аст
Console.WriteLine(y);
}
// Console.WriteLine(y); // Хатои компилятсия: y дар ин ҷо дастрас нест
}