سازنده ها و تخریب کننده ها در سی شارپ (شئ گرایی)
در مقاله گذشته با شکل کلی کلاس ها و اجزای آن و همچنین کپسوله کردن کدها آشنا شدیم. در این قسمت قصد داریم درباره مباحث پیشرفته تر شئ گرایی بحث کنیم. سازنده ها و تخریب کننده ها از مباحث مهم شئ گرایی هستند که برای نوشتن یک برنامه اصولی و مدیریت حافظه دانستن آن ها لازم است. برای یادگیری کار با سازنده ها و تخریب کننده ها در سی شارپ با zerotohero.ir همراه باشید.
سازنده های کلاس در سی شارپ
سازنده کلاس (Constructor) متد خاصی است که در هنگام ایجاد شئ از یک کلاس اجرا میشود. متد سازنده کلاس دقیقا هم نام با کلاس تعریف میشود و هیچ نوع مقداری را برنمیگرداند یا به عبارت دیگر هیچ نوع داده ای را بازگردانی (return) نمیکند. سورس زیر نمونه ای از سازنده کلاس میباشد:
using System; namespace objectorienting { class Objective { private double Variable1=0; public Objective() { Console.WriteLine("Object is being created!"); } public void setvalue( double len ) { Variable1 = len; } public double getvalue() { return Variable1; } static void Main(string[] args) { Objective obj = new Objective(); obj.setvalue(5); Console.WriteLine("The Value is :{0} ", obj.getvalue()); } } }
در متد main() برنامه ابتدا شئ ساخته شده و در هنگام ایجاد شئ ابتدا متد سازنده اجرا شده و با متد setvalue() به متغیر کلاس مقدار دهی شده و در نهایت با getvalue() مقدار آن برای چاپ ارسال شده است.
یک سازنده به طور پیشفرض پارامتری ندارد اما در صورت لزوم میتواند داشته باشد. چنین سازنده هایی را، سازنده های پارامتریک مینامند. این تکنیک به شما اجازه میدهد که اشیاء را در هنگام ساخته شدن مقدار دهی نمایید. به نمونه کد زیر توجه کنید :
using System; namespace objectorienting { class Objective { private double Variable1=0; public Objective(double lenghts) { Console.WriteLine("Object is being created!"); Variable1 = lenghts; } public void setvalue( double len ) { Variable1 = len; } public double getvalue() { return Variable1; } static void Main(string[] args) { Objective obj = new Objective(6); Console.WriteLine("Meghdar dehi ba Constructor: {0}",obj.getvalue()); obj.setvalue(5); Console.WriteLine("Meghdar dehi ba method :{0} ", obj.getvalue()); } } }
توصیه میشود برای یادگیری بهتر مطالب حتما کدهای بالا را در یک محیط توسعه مانند ویژوال استودیو اجرا نمایید تا خروجی را از نزدیک ملاحظه کنید.
تخریب کننده کلاس ها در سی شارپ
تخریب کننده ها متدهایی هستند که در هنگام پاک شدن یک شئ اجرا میشوند. این متد همنام با کلاس خود بوده با این تفاوت که در ابتدای نام آن حتما باید علامت (~) آورده شود. تخریب کننده ها (Destructors) برای آزاد سازی حافظه قبل از خروج از برنامه بسیار میتواند مفید باشد. تخریب کننده ها نمیتوانند به ارث برده شوند یا بارگذاری مجدد شوند. برای مثال، کلاسی که در بالا آورده شده را تخریب کننده مینویسیم :
using System; namespace objectorienting { class Objective { private double Variable1=0; public Objective(double lenghts) { Console.WriteLine("Object is being created!"); Variable1 = lenghts; } ~Objective() { Console.WriteLine("object being erased!"); } public void setvalue( double len ) { Variable1 = len; } public double getvalue() { return Variable1; } static void Main(string[] args) { Objective obj = new Objective(6); Console.WriteLine("Meghdar dehi ba Constructor: {0}",obj.getvalue()); obj.setvalue(5); Console.WriteLine("Meghdar dehi ba method :{0} ", obj.getvalue()); } } }
امید وارم این مقاله مفید بوده و با مفهوم سازنده ها و تخریب کننده ها در سی شارپ به خوبی آشنا شده باشید .
با zerotohero.ir همراه باشید…
برای یادگیری بیشتر میتوانید مقاله های قبلی مرتبط را مطالعه کنید :
https://zerotohero.ir/6619/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%d8%a6-%da%af%d8%b1%d8%a7-%d8%af%d8%b1-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%d9%82%d8%b3%d9%85%d8%aa-%d8%a7%d9%88%d9%84
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.