مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mahdi1372

عضویت از 1395/08/26

تشریح کامل سطوح دسترسی در #C

  • جمعه 13 اسفند 1395
  • 14:04
تشکر میکنم

سلام به همه دوستان واساتید گرامی

من تازه #C رو شروع کردم و تازه رسیدم به مبحث تعیین سطوح دسترسی روی کلاس و اعضای کلاس

کلی مطلب خوندم و چکیدشون شد این :

********** سطح دسترسی پیشفرض در سی شارپ **********

1) سطح دسترسی پیشفرض برای کلاس ها internal هست (در صورتی که برای کلاسی که اعلان کردیم، سطح دسترسی ای تعیین نکنیم)

2) سطح دسترسی پیشفرض برای اعضای کلاس private هست (در صورتی که برای اعضای کلاسی که اعلان کردیم، سطح دسترسی ای تعیین نکنیم)

********** تاثیر انواع سطح دسترسی بر روی اعضای کلاس **********

1) زمانی از سطح دسترسی public برای اعضای کلاس استفاده می کنیم که بخوایم دسترسی به اون عضو، از طریق instance گرفتن از کلاسی که توش نوشته شده، امکان پذیر باشه

2) زمانی از سطح دسترسی private برای اعضای کلاس استفاده می کنیم که بخوایم دسترسی به اون عضو، از طریق instance گرفتن از کلاسی که توش نوشته شده، امکان پذیر نباشه (این جور مواقع دسترسی به اون عضو، فقط در کلاسی که توش نوشته شده امکان پذیره)

3) زمانی از سطح دسترسی protected برای اعضای کلاس استفاده می کنیم که بخوایم دسترسی به اون عضو، از طریق instance گرفتن از کلاسی که توش نوشته شده، امکان پذیر نباشه (این جور مواقع دسترسی به اون عضو، فقط در کلاسی که از کلاس اصلی ارث بری کرده امکان پذیره)

4) زمانی از سطح دسترسی internal برای اعضای کلاس استفاده می کنیم که بخوایم این قسمتش رو شما استاتید محترم راهنماییم کنید

********** تاثیر انواع سطح دسترسی بر روی کلاس **********

1) زمانی از سطح دسترسی public برای کلاس استفاده می کنیم که بخوایم دسترسی به اون کلاس، در کل solution، امکان پذیر باشه

2) زمانی از سطح دسترسی internal برای کلاس استفاده می کنیم که بخوایم دسترسی به اون کلاس، فقط در solution جاری، امکان پذیر باشه

فقط از اساتید محترم خواهش دارم اگر ممکنه این دو گزینه فوق رو به صورت مثال در visual studio برامون آموزش بدید تا بهتر درکش کنیم حسابی

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

سپاس بی کران

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • شنبه 14 اسفند 1395
  • 16:56

مقاله زیر را مطالعه فرمایید و اگر سوالی داشتید در ادامه همین تاپیک مطرح کنید :

سطوح دسترسی در #C

کاربر سایت

mahdi1372

عضویت از 1395/08/26

  • یکشنبه 15 اسفند 1395
  • 11:26

ممنون از راهنماییتون استاد عزیز

تایپیکی که گفتید رو قبلا دیده بودم. اما نتونستم تمام چیزایی رو که میخوام بدونم ازش دربیارم

مبحث اول) سطوح دسترسی روی اعضای کلاس :

1) سطح دسترسی public برای اعضای کلاس رو کاملا می دونم. (بیرون از کلاس میشه بهش دسترسی پیدا کرد)

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

3) سطح دسترسی protected برای اعضای کلاس رو کاملا می دونم. (بیرون از کلاس نمیشه بهش دسترسی پیدا کرد) فقط در کلاسی که از کلاس اصلی ارث بری کرده میشه بهش دسترسی داشت!

4) سطح دسترسی internal رو به صورت واضح نمی دونم چیه؟؟؟ (اگر یک نمونه کد ببینم که internal رو توضیح بده بهتر متوجه میشم)

مبحث دوم) سطوح دسترسی کلاس :

1) سطح دسترسی public برای کلاس باعث میشه در کل solution بشه به کلاس دسترسی پیدا کرد. (مطمئن نیستم! به دیدن مثال نیاز ندارم)

2) سطح دسترسی internal برای کلاس باعث میشه نه در کل solution، بلکه فقط در پروژه بشه به کلاس دسترسی پیدا کرد. (مطمئن نیستم! به دیدن مثال نیاز ندارم)

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 15 اسفند 1395
  • 17:48

سطح دسترسی public برای کلاس به شما اجازه میدهد که داخل و خارج از فضای نام وحتی خارج از پروژه یا اسمبلی ای که کلاس در آن ساخته شده است، بتوانید از آن کلاس یک نمونه بسازید و یا ارثبری کنید ولی internal فقط به شما اجازه میدهد که داخل همان پروژه یا اسمبلی ای که کلاس در آن ساخته شده نمونه سازی کنید، خارج از پروژه به کلاس مورد نظر دسترسی ندارید. پروژه ضمیمه شده این تاپیک را بررسی کنید.

دقت کنید کتابخانه ای که بصورت پروژه جداگانه داخل solution قرار دارد شامل دو کلاس است که یکی Internal و دیگریpublic است و همانگونه که گفته شد داخل پروژه دیگر که از نوع consol است پس از ریفرنس دادن نمی توانید از کلاس Internal استفاده کنید فقط کلاس public امکان نمونه سازی دارد.

فایل های ضمیمه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)