ایجاد انواع کلاس ها با modifier ها در سی شارپ
ایجاد انواع کلاس ها با modifier ها در سی شارپ

در این مقالهmodifierها یا تغییردهندها  در زبان سی شارپ را به شما آموزش می‌دهیم البته توجه داشته باشید کهmodifierها باAccsess modifierها متفاوت هستند وAccsess modifierبه معنی سطح دسترسی است برای دریافت اطلاعات بیشتر در موردAccsess modifierها می‌توانید به قسمت29 دوره سی شارپ متوسط وبسایت باگتو مراجعه کنید.

در واقعmodifierها یک سری کلمات کلیدی هستند که به کلاس‌ها و متدها و متغیرهای ما معنی و مفهوم خاصی می‌بخشند. ما در سی شارپ چند نوع تغییردهنده داریم که در ادامه آنها را توضیح می‌دهیم.

بعد دیدن  آموزش سی شارپ  در دوره متوسط سطح شی شارپ می توانید به راحتی modifierها را از Accsess modifierها تشخیص دهید.

 

1.abstract:

اگر در تعریف کلاس از این کلمه کلیدی استفاده کنیم این کلاس مخصوص ارث‌بری می‌شود و نمی‌توان از آن نمونه‌گیری کرد ارث‌بری به این معنی است که یک کلاس از ویژگی‌های کلاس دیگر که کلاس پدر خود است بهره‌مند شود یعنی اگر کلاسa از کلاسb ارث‌بری کند به‌عنوان‌مثال اگر کلاسb پراپرتی به نامname داشته باشد کلاسa نیز این پراپرتی را خواهد داشت به شبه کدهای زیر دقت کنید

public abstract class b

{

    string name;

}

public class a:b

{

    string family;

}

 

در کد بالا اگر بخواهیم از کلاسb نمونه‌گیری کنیم این کار غیرمجاز است زیرا از کلمه کلیدیabstractاستفاده شده و این کلمه کلیدی به این کلاس این معنی را می‌بخشد که فقط برای ارث‌بری است و نمی‌توان از آن نمونه‌گیری کرد

 

 

2.const:

اگر در تعریف متغیر از این کلمه کلیدی استفاده کنیم مقدار آن تا انتهای برنامه ثابت است و هرگز عوض نمی‌شود برای مثال اگر مقدار متغیرnum برابر 10 باشد تا آخر برنامه مقدار آن ثابت است و دیگر نمی‌توان مقدار آن را عوض کرد یا تغییر داد

const int num = 10;

 

3.event :

با استفاده از این کلمه کلیدی می‌توان برای کلاس‌ها رویداد ایجاد کرد اگر باwindows applicationها یاwpf کار کرده باشید متوجه می‌شوید که هرکدام از المان‌های صفحه (مثلاً دکمه‌ها) کلاس‌هایی هستند که رویدادهای مختلفی دارند مانند رویدادclick یا رویدادmouse hoverیا رویدادtextchange و غیره ...

 برای مثال:

public event EventHandler OnMaximum;

 

البته با کد بالا یک رویداد کامل ساخته نمی‌شود بلکه باید این رویداد پیاده‌سازی شود و هدف ما در این بخش نمایش کلمه کلیدیevent برای شما بود و برای آموزش کامل این مباحث پیشرفته می‌توانید به دوره ستارگان سی شارپ مراجعه فرمایید

4.extern:

می‌توان متدهایی ایجاد کرد که پیاده‌سازی آنها در یک کتابخانه خارجی است و می‌توان آن را به متد اضافه کرد

    [DllImport("Cmdll.dll")]

    public static extern int SampleMethod(int x);

در مثال بالا درونdll پیاده‌سازی متدSimpleMethod را داریم و با استفاده از اتریبیوت آدرس و نام دی ال ال را میدهیم و هرگاه از این متد استفاده کنم به‌صورت خودکار پیاده‌سازی آن در آن دی ال ال اجرا می‌شود

 

5.override:

برای متدهایvirtual کلاس‌های پدر می‌توان پیاده‌سازی جدید نوشت

public class b

{

    public virtual string SimpleMethod()

    {

        return "Returned From parent Class";

    }

}

public class a:b

{

    public override string SimpleMethod()

    {

        return "Returned From Child Class";

    }

}

کد بالا به این شکل کار می‌کند که ما یک متد داریم ولی در کلاس فرزند پیاده‌سازی متفاوتی نسبت به کلاس پدر دارد اگر از کلاس پدر نمونه‌گیری کنیم با پیاده‌سازی خودش اجرا می‌شود ولی اگر از کلاس فرزند نمونه‌گیری کنیم با پیاده‌سازی خودش را در خروجی دریافت می‌کنیم

6.readonly :

می‌توان پراپرتی هایی ایجاد کرد که فقط خواندنی باشند و فقط در همان کلاس خودش می‌توان به آن مقدار داد و در هنگام تعریف متغیر

private readonly string name="Bugeto.net";

در کد بالا ما متغیری تعریف کردیم که دیگر جای دیگری در برنامه نمی‌توان به آن مقدار داد و فقط می‌توان مقدار آن را خواند

 

 

7.seald:

با استفاده از کلمه کلیدیseald می‌توان کلاس‌های مهروموم شده یا کلاس‌های عقیم ایجاد کرد به این معنی که نمی‌توان از این کلاس‌ها ارث‌بری کرد و این کلاس‌ها هیچ فرزندی ندارند و فقط می‌توان از آن‌ها نمونه‌گیری کرد دقیقاً برعکس کلاس‌هایabstractهستند به نمونه زیر توجه کنید.

public class b

{

    public string Name { get; set; }

}

public sealed class a:b

{

    public string Family { get; set; }

}

در مثال بالا کلاسaکه از کلاسb ارث‌بری کرده است و به‌صورتseald تعریف شده پس در نتیجه دیگر نمی‌توان از آن ارث‌بری کرد و اگر از آن ارث‌بری کنیم کامپایلر ارور می‌دهد فقط می‌توانیم از آنها نمونه تهیه کنیم

8.static:

می‌توان کلاس‌ها و متدهای ایستا تعریف کرد یعنی اگر بخواهیم از این کلاس‌ها یا متدهای درون آنها استفاده کنیم نیازی به نمونه‌گیری نداریم

public static class SimpleClass

{

    public static string SimpleMethod()

    {

        return "Hello Bugeto";

    }

}

 

در کد بالا ما کلاسSimpleClass را به‌صورت ایستا تعریف کردیم پس در نتیجه متد داخل آن را هم باید به‌صورت ایستا تعریف کنیم. حالا برای استفاده از این کلاس و متد نیازی به نمونه‌گیری نداریم و به‌صورت زیر از آن استفاده می‌کنیم

Console.WriteLine(SimpleClass.SimpleMethod());

همان‌طور که می‌بینید نمونه‌ای از کلاس ایستا تعریف نکردیم و به‌صورت مستقیم از آن استفاده می‌کنیم حالا با کد بالا عبارت "”Hello Bugetoدر خروجی چاپ می‌شود

 

9.Unsafe:

می‌توان متدهای ناامن نوشت یعنی اینکه می‌توان عملیات‌هایی که کامپایلر انجام نمی‌دهد را انجام دهیم برخی عملیات‌ها ناامن هستند و توسط کامپایلر انجام نمی‌شوند

unsafe static void SimpleMethod()

{

    // Unsafe context:

}

حال اگر درون بدنه این متد عملیاتی بنویسیم که ناامن باشند کامپایلر آن عملیات‌ها را انجام خواهد.

10.Virtual  :

اگر متدیvirtualباشد می‌توان در کلاس فرزند انراoverride  کرد همانطور که در مثال بالاتر در قسمتoverride به شما اموزش دادیم تنها متد هایی که از نوعvirtualباشند را میتوانoverride کرد.

Public class SimpleClass

{

    public virtual string SimpleMethod()

    {

        return "Hello Bugeto";

    }

}

 

در کد بالا متدSimple Method را می‌توان در کلاسی که از کلاسSimpleClass ارث‌بری کرده راoverride کرد

 

 

11.volatile  :

با این کلمه کلیدی می‌توان متغیرهای فرار تعریف کرد این متغیرها قابلcache شدن در کش پردازنده نیستند و درون رم قرار می‌گیرند.

public class SimpleClass

{

    public volatile int SimpleVariable;

    public void Test(int i)

    {

        SimpleVariable = i;

    }

}

در کد بالا زمانی که از کلاس نمونه‌گیری می‌کنیم و از متدTest استفاده می کنیم ورودی هر مقداری که باشد درون متغیرSimpleVariable ریخته می شود که این متغیر درون حافظه کش پردازنده ذخیره نمی‌شود و فقط بر روی رم می‌ماند

حتما برای بهتر متوجه شدن این مبحث ویدئوهای مربوط به متغییرها را در دوره سی شارپ متوسط ببینید البته ناگفته نماند که صرفاً خواندن این مقاله کافی نیست بلکه باید تمرین و تکرار کنید تا این موضوع را به‌خوبی متوجه شوید

 

 

تگ‌ها
اشتراک
0 نظرات

برای ارسال نظر باید وارد حساب کاربری خود شوید
ورود به حساب کاربری ثبت نام

دوره جدید منتشر شد.تا روز یک شنبه می توانید دوره جدید را با 300.000 تومان تخفیف تهیه نمایید.