Основы объектно-ориентированного программирования на языке C# book | Page 114
7 Класи
test.e = 8; // поле e доступно з будь-якого мiсця збiрки. Помилки
немає.
test.f = 8; // поле f доступно з будь-якого мiсця
// тестування доступу до методiв
test. WriteConsoleF() ; /* Помилка. Немаєдоступучерезте
,
щометод WriteConsolf оголошено, як private вкласi Example,
аметодвикористовуєтьсяукласi
Program */
// Оскiльки цей метод оголошений як protected, а клас Program не
нащадком класу State
test. WriteConsoleE(); /* Помилка. Немаєдоступучерезте
,
щометод WriteConsole оголошено, як protected вкласi Example,
аклас Program неєнащадкомкласу
Example */
test. WriteConsoleA(); // коректне використання методу. Метод
оголошено як public
test. WriteConsoleB();// коректне використання методу. Метод
оголошено як internal
Console.ReadKey();
}
}
Модифiкатор internal дозволяє надати доступ до классу iншим
класам, не гарантуючи при цьому доступ абсолютно всiм класам.
Клас, що позначений як internal , є доступним всiм классам, що
входять у збiрку. Застосування модификатора internal до полiв кла-
су корисно, коли необхiдно органiзувати взаємодiю мiж декiлькома
класами.
Слiд зауважити, що член класу є доступним, якщо доступ дозво-
лений його власним модифiкатором й модифiкатором класу, у якому
вiн оголошений.
Розглянемо простий приклад.
internal class MyClass
{
public void PublicMethod()
{
}
internal void InternalMethod ()
{
}
protected void ProtectedMethod ()
{
}
}
114