Metodlar bilan ham xuddi shunday vaziyat mavjud:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
class Program
{
static void Main(string[] args)
{
State state1 = new State();
state1.defaultMethod(); // Xatolik, foydalanishga ruxsat mavjud emas
state1.privateMethod(); // Xatolik, foydalanishga ruxsat mavjud emas
state1.protectedPrivateMethod(); // Xatolik, foydalanishga ruxsat mavjud emas
state1.protectedMethod(); // Xatolik, foydalanishga ruxsat mavjud emas
state1.internalMethod(); // me`yoriy talab
state1.protectedInternalMethod(); // me`yoriy talab
state1.publicMethod(); // me`yoriy talab
}
}
|
Bu erda faqat uchta metodga modifikatorlari internal, protected internal, public bo`lganligi uchun ruxsat mavjud: internalMethod, protectedInternalMethod, publicMethod.
Ushbu ruxsat modifikatorlari tizimi tufayli dasturning boshqa qismlaridan sinfingizning ayrim qismlarini yashirishingiz mumkin.
Garchi public va internal modifikatorlari o'zlarining xususiyatlarida o'xshashliklar bo'lsada, lekin ular bir biridan katta farqga ega. Agar sinf ma'lumotlarning dinamik DLL kutubxonasiga joylashtirilsa va undan keyin ushbu dasturlarda ishlatilsa, u holda public modifikatorli sinflar va sinf a'zolaridan boshqa dasturlar ham foydalanish huquqida ega bo'ladi.
Ko'pincha, turli sinflar va tuzilmalar dll-larda tuzilgan va keyinchalik boshqa loyihalarga ulanishi mumkin bo'lgan alohida kutubxonalar shaklida tuziladi. Shu bilan biz sinfni kutubxona shaklida aniqlashimiz va turli loyihalardan unga ulanishimiz yoki boshqa dasturchilarga foydalanish uchun berishimiz mumkin bo`ladi.
Do'stlaringiz bilan baham: |