مشخصات مقاله
-
3215
-
5.0
-
28700
-
2
-
1
تعیین سطح دسترسی (access modifier) در C#
آموزش سطح دسترسی(Access Modifier) در C#
وقتی در C# با کلاسها، متدها، متغیرها و ویژگیها کار میکنی، فقط تعریف کردن یک عنصر کافی نیست؛ باید مشخص کنی چه بخشهایی از برنامه میتونن به اون دسترسی داشته باشن. این موضوع در پروژههای مختلف اهمیت زیادی داره و با استفاده از Access Modifier میتونی سطح دسترسی هر عنصر رو مشخص کنی.
در این مقاله با انواع سطح دسترسی در C# آشنا میشیم و بررسی میکنیم هرکدوم در چه محدودهای امکان استفاده از عناصر برنامه رو فراهم میکنن. اگر در مسیر یادگیری C# هستی، شناخت این مفاهیم کمک میکنه ساختار کلاسها و نحوه ارتباط بین اونها رو بهتر درک کنی.
با تعیین بازه دسترسی یک کلاس، متد، متغیر یا ویژگی در C#، مشخص میکنیم چه روشی برای دسترسی به اون عنصر وجود داره و در چه بخشهایی از برنامه میشه از اون استفاده کرد. به این قابلیت در اصطلاح سطح دسترسی یا Access Modifier میگن.
رایجترین حالتها برای Access Modifier در C#، حالت خصوصی Private و عمومی Public هستن، اما حالتهای دیگهای هم وجود دارن که در لیست زیر معرفیشون کردیم. ممکنه بعضی از این موارد رو قبلاً استفاده کرده باشی، اما آشنایی با همه اونها برای کار با C# ضروریه.
- عمومی Public : در این حالت عنصر به صورت عمومی تعریف میشه و از هر بخش برنامه میتونن عناصر دیگه، مثل سایر کلاسها و توابع، به اون دسترسی داشته باشن. این حالت کمترین محدودیت رو برای عنصر ایجاد میکنه و Enums و Interface ها به صورت پیشفرض public هستن.
- محافظت شده یا Protected : در این حالت عنصر فقط توسط اعضای همون کلاس یا کلاسهایی که از اون کلاس به ارث بردهان، قابل دسترسیه.
- درونی یا internal : در این حالت عنصر فقط درون پروژه جاری قابل دسترسیه.
- درونی محافظت شده یا Protected internal : این حالت مشابه internal هست، با این تفاوت که عناصر موجود در کلاسهایی که از کلاس مورد نظر به ارث بردهان، حتی اگر در پروژههای دیگه باشن، میتونن به اون دسترسی داشته باشن.
- خصوصی یا Private : در این حالت فقط اعضای همون کلاس میتونن به آیتم مورد نظر دسترسی داشته باشن. این حالت بیشترین میزان محدودیت رو ایجاد میکنه و Class ها و Struct ها به صورت پیشفرض خصوصی private هستن.
برای مثال، فرض کن دو کلاس به نامهای Class 1 و Class 2 داشته باشیم. اعضای private مربوط به Class 1 فقط داخل خود اون کلاس قابل دسترسی هستن. بنابراین نمیتونی یک نمونه از اشیای Class 1 رو در Class 2 بسازی و از طریق اون به اعضای private دسترسی داشته باشی.
اما اگر Class 2 از Class 1 به ارث رفته باشه و در واقع فرزند اون باشه، که در اصطلاح میگیم inherit شده، فقط اعضای غیر private کلاس 1 در Class 2 قابل دسترسی هستن.
اگر میخوای مفاهیم C# رو به شکل منظمتر و کاربردیتر یاد بگیری، میتونی مسیر یادگیری خودت رو با دوره آموزش C# ادامه بدی و مباحث مختلف این زبان رو مرحلهبهمرحله یاد بگیری.