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