انواع سطوح دسترسی در سی شارپ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

انواع سطوح دسترسی در سی شارپ

0 امتیاز
ما کلا چند نوع سطح دسترسی در سی شارپ داریم و تفاوت بین این سطوح دسترسی در چیه؟
سوال شده اسفند 19, 1392  بوسیله ی Nima (امتیاز 27)   3 3 4
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

سلام.

در کل 5 نوع سطح دسترسی داریم. که برای کلاس ها و اعضای کلاس ها (مثل متدها، پراپرتی ها، فیلدها و ...) و ... قابل تعریف هستش (البته این 5 سطح دسترسی رو در همه جا نمی تونیم اعمال کنیم).

1. public : این نوع سطح دسترسی در همه جا قابل دسترس هست (چه در یک solution باشه و چه در خارج از solution بخوایم بهش دسترسی داشته باشیم).

2. private : این نوع سطح دسترسی فقط در همان کلاس قابل دسترس هست (حتی کلاس هایی که از کلاسی با سطح دسترسی اعضای private مشتق شدن (ارث بردن) هم به اعضای private دسترسی ندارند).

3. protected : وقتی یک کلاس از کلاسی دیگه مشتق میشه میتونه به اعضای protected کلاس پدر، دسترسی داشته باشه.

4. internal : گاهی اوقات در پروژه های بزرگ یک solution شامل چندین پروژه میشه(سولوشن رو می تونید از پنجره solution explorer ببینید و بخش های مختلف یک پروژه درون solution قرار میگیرند.) . اگر یک کلاس رو internal تعریف کنیم، در همون پروژه (که اصطلاحا بهش اسمبلی هم گفته میشه) می تونیم بهش دسترسی داشته باشیم ولی در پروژه های دیگه ای که درون یک solution قرار دارند قابل دسترس نخواهد بود. مثلا در برنامه نویسی 3 لایه، اگر سولوشن ما شامل 3 پروژه (یا اسمبلی) باشه که یکی مربوط به فرم های برنامه و از نوع windows form application باشه که خروجیش یک exe هست و دو پروژه دیگه از نوع Class Library  برای لایه های BLL و DAL داشته باشیم که خروجیشون از نوع dll هست، اگر عضوی یا کلاسی رو internal تعریف کنیم فقط در همون پروژه قابل دسترس خواهد بود.

5. protected internal : این نوع دسترسی شامل هر کدوم از سطوح دسترسی protected یا internal میشه. protected از این جهت که اگر کلاسی از کلاس دیگه مشتق شد (ارث برد) می تونه به اعضای protected و protected internal دسترسی داشته باشه و همچنین اگر کلاسی درون یک solution (حتی در پروژه ای دیگه) باشه می تونه به اعضای internal یا protected internal دسترسی پیدا کنه. پس برای دسترسی به اعضایی با سطوح دسترسی protected internal کافیه که یا شرط protected برقرار باشه یا شرط internal ( دقیقا مفهوم or هستش و اگر هر دو شرط هم برقرار باشه باز هم دسترسی صورت خواهد گرفت).

موفق باشید.

پاسخ داده شده اسفند 19, 1392 بوسیله ی veniz2008 (امتیاز 2,083)   1 5 21
ویرایش شده مهر 22, 1393 بوسیله ی veniz2008
...