آموزش اعضای استاتیک یا ایستا (Static) در سی شارپ

رتبه: 0 ار 0 رای sssss
اعضای ایستا
نویسنده: میلاد حیدری زمان مطالعه 4 دقیقه
Banner Image

همان طور که در فصل قبلی دیدیم، روش معمول برای ارتباط برقرار کردن با یک کلاس، ایجاد یک نمونه جدید از کلاس در سی شارپ است و سپس کار روی روی شیء حاصل است. در بیشتر موارد؛ این همان چیزی است در کلاس ها وجود دارد؛ توانایی برای نمونه سازی چندین کپی از یک کلاس مشابه و سپس استفاده از آنها به شیوه هایی متفاوت. با این حال، ممکن است بخواهید کلاسی داشته باشید که بدون نمونه سازی آن؛ از آن استفاده کنید. یا حداقل یک کلاس داشته باشید که در آن بتوانید از اعضا بدون ایجاد یک شیء برای آنها استفاده کنید. برای مثال؛ ممکن است یک کلاس با یک متغیر داشته باشید که بدون توجه به این که کجا و چگونه مورد استفاده قرار می گیرد؛ همیشه همان باقی می ماند.

یک کلاس می تواند استاتیک باشد و همچنین اعضا و نیز توابع و فیلدهای ایستا داشته باشد. یک کلاس استاتیک نمی تواند نمونه سازی شود؛ بنابر این؛ به عبارت دیگر؛ این کلاس بیشتر به شکل گروه بندی اعضای مربوط به هم کار می کند؛ تا این که به عنوان یک کلاس واقعی کار بکنند. شما ممکن است انتخاب کنید که در عوض یک کلاس غیر استاتیک ایجاد کنید؛ اما به آن اجازه دهید که برخی اعضای استاتیک داشته باشد. یک کلاس غیر استاتیک را می توان همچنان نمونه سازی کرد و مشابه یک کلاس مرتب به کار گرفت، اما شما نمی توانید از یک عضو استاتیک روی یک شیء کلاس استفاده کنید. یک کلاس استاتیک ممکن است فقط شامل اعضای استاتیک باشد.

ابتدا؛ در این قسمت مثالی از یک کلاس استاتیک را مشاهده کنید:

public static class Rectangle

{

public static int CalculateArea(int width, int height)

{

return width * height;

}

}

همان طور که می بینید؛ از کلیدواژه استاتیک برای مشخص کردن کلاس به عنوان استاتیک استفاده می کنیم؛ و سپس از آن دوباره برای مشخص کردن متد و نیز CalculateArea به عنوان استاتیک به کار می رود. اگر ما این کار را انجام ندهیم؛ کامپایلر؛ خطا می دهد؛ زیرا ما نمی توانیم یک عضو غیر استاتیک از یک کلاس استاتیک داشته باشیم.

برای استفاده از این متد؛ آن را مانند زیر؛ به صورت مستقیم در کلاس فراخوانی می کنیم:

Console.WriteLine(“The area is: ” + Rectangle.CalculateArea(5, 4));

ما می توانیم متدهای مفید دیگری به کلاس مستطیل استفاده کنیم؛ اما شاید تعجب کنید که چرا ما طول و عرض مستطیل را به متد حقیقی منتقل می کنیم؛ به جای آنکه آنها را درون کلاس ذخیره کنیم؟ زیرا آن استاتیک است. ما می توانیم آنها را ذخیره کنیم؛ اما فقط یک مجموعه از ابعاد را می توانیم ذخیره کنیم؛ زیرا فقط یک نسخه از کلاس استاتیک وجود دارد. درک این موضوع بسیار مهم است.

در عوض ما می توانیم کلاس غیر استاتیک را ایجاد کنیم و سپس در این کلاس ، CalculateArea را به عنوان یک تابع استفاده کنیم:

public class Rectangle

{

private int width, height;

public Rectangle(int width, int height)

{

this.width = width;

this.height = height;

}

public void OutputArea()

{

Console.WriteLine(“Area output: ” + Rectangle.CalculateArea(this.width, this.height));

}

public static int CalculateArea(int width, int height)

{

return width * height;

}

}

همان طور که مشاهده می کنید؛ ما کلاس غیر استاتیک را ساخته ایم. ما همچنین یک سازنده را نیز اضافه کرده ایم که طول و عرض را اتخاذ می کند و آن را به مثال تخصیص می دهد. سپس ما یک متد OutputArea را اضافه کرده ایم که از روش استاتیک برای محاسبه مساحت استفاده می کند. این یک مثال بسیار خوب از ترکیب اعضای استاتیک با اعضای غیر استاتیک در یک کلاس غیر استاتیک می باشد.

استفاده متداول از کلاس های استاتیک ، اگرچه توسط برخی افراد، مورد قبول واقع نشده است، ولی آنها کلاس های کمک کننده/ ابزاری هستند، که در آن شما مجموعه ای از روش های مفید را جمع آوری می کنید، که ممکن است به هم تعلق نداشته باشند، اما به نظر نمی رسد که در جای دیگر مناسب باشد.

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه
آموزش برنامه نویسی سی پلاس پلاس
آموزش برنامه نویسی سی پلاس پلاس
قیمت محصول 230,000 تومان 250,000
ادامه مطلب

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

1 2 3 4 5

0 نظر درباره «آموزش اعضای استاتیک یا ایستا (Static) در سی شارپ»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید