تفاوت بین public، private و protected در کلاس ها در C# چیست
سلام وقت بخیر
ببخشید یه سوال داشتم
داخل زبان سی شارپ تفاوت بین توابع Static و Public در چی هست؟
و چرا وقتی یک Property از نوع Public داخل کلاس تعریف میشه از اون نمیتونیم داخل یک تابع از نوع Static استفاده کینم؟
ایا این موارد برای کلاس های هم صدق میکنه؟
و تفاوت بین Private و Preotected چی هست؟
اگر یه راهنمایی کامل انجام بدید ممنون میشم
سپاس از شما
با درود
برای پراپرتی ها ما Access Modifier داریم یعنی سطح دسترسی
انواع سطوح دسترسی پراپرتی ها (Properties)
- internal
- public
- private
- protected
به طور پیش فرض اگه پراپرتی سطح دسترسی مشخص نشه private در نظر گرفته میشه.
Public : سطح دسترسی در کل پروژه
Private : سطح دسترسی در سطح کلاس
Protected : فقط در کلاس هایی که از این کلاس ارث بری میکنند امکان دسترسی وجود داره.
کلاس ها :
کلاس ها هم سطح دسترسی دارند :
- public
- private
- protected
- internal
پیش فرض اگه برای کلاس تعریف نشه internal در نطر گرفته میشه .
public : در سطح کل پروژه کلاس قابل استفاده می باشد.
private : کلاس رو نمیشه پرایوت کرد
internal : در سطح همون پروژه
protected : در کلاس هایی که از این کلاس ارث بری میکنند قابل استفاده میباشد
نوع کلاس static یا غیر static
کلاسی که استاتیک تعریف بشه دیگه نیازی به نمونه سازی نداره و مستقیم میتوان از این کلاس استفاده کرد و برای مثال شما مثلا برای ثبت آدرس سایت و آدرس و ... میتوانید از کلاس استاتیک استفاده کنید -برای درک واضح تر شما کلاس مدرسه رو در نظر بگیرید یک تخته سیاه وجود داره برای همه افراد اون کلاس و به ازای هر دانش آموز بهشون تخته سیاه نمیدن برای این مثال تخته سیاه رو میتوان کلاس استاتیک در نظر گرفت.
ولی اگه بخوان آب معدنی به شاگردان تعلق بگیره نیاز هست که کلاس غیر استاتیک تعریف بشه چون به ازای هر دانش آموز یک آب معدنی وجود داره
سعی کردم با زبون ساده بنویسم که قابل درک بشه
امیدوارم تونسته باشم منظور رو برسونم.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول