Основы объектно-ориентированного программирования на языке 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