سلام دوستان عزیز ، امیدوارم که شاد باشید و سلامت .تابع سازنده یا Constructor متد ویژه ای است که هر بار به محض ساخته شدن یک شی یا object از کلاس، اجرا می شود. درواقع از تابع سازنده برای مقداردهی اولیه متغیرها یا اجرای یک کد ثابت استفاده می شود.
یک تابع سازنده هیچ گاه مقدار خروجی یا return ندارد و به همین دلیل در تعریف آن، هیچ نوع متغیری جهت return تعریف نمی شود. ساختار کلی تعریف تابع سازنده Constructor در کلاس های C# به صورت زیر است :
?
۱

public string Describe()

همچنین تابع سازنده را به صورت زیر نیز می توانید تعریف کنید :
?
۱

public Car()

در مثال عملی این درس، کلاسی به نام Car Class داریم که دارای یک تابع سازنده بوده که یک پارامتر متنی String را به عنوان ورودی دریافت می کند. البته تابع های سازنده در C# می توانند overload نیز شوند. یعنی این که ما چندین تابع سازنده هم نام برای یک کلاس داشته باشیم، ولی پارامترهای ورودی آن ها با هم متفاوت باشد. کلاس زیر یک کد عمل را نشان می دهد :
?
۱
۲
۳
۴
۵
۶
۷
۸
۹

public Car()
{

}

public Car(string color)
{
this.color = color;
}

یک تابع سازنده، می تواند تابع سازنده دیگر را فراخوانی کند که به صورت های مختلف ممکن است کد زیر یک مثال در این زمینه ارائه داده است :
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰

public Car()
{
Console.WriteLine(“Constructor with no parameters called!”);
}

public Car(string color) : this()
{
this.color = color;
Console.WriteLine(“Constructor with color parameter called!”);
}

اگر متد مثال فوق را اجرا کنید، خواهید دید که تابع سازنده ای که هیچ پارامتری را به عنوان ورودی ندارد، ابتدا اجرا می شود. از این حالت برای مقداردهی اشیا (objects) های یک کلاس با یک تابع سازنده پیش فرض استفاده می شود.
اگر بخواهید که تابع سازنده دار ای پارامتر فراخوانی شود، می توانید یه صورت کد زیر عمل کنید :
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰

public Car(string color) : this()
{
this.color = color;
Console.WriteLine(“Constructor with color parameter called!”);
}

public Car(string param1, string param2) : this(param1)
{

}

نکته : اگر شما تابع سازنده ای که دارای ۲ پارامتر است را فراخوانی کنید، پارامتر اول برای فراخوانی تابع سازنده ای که دارای ۱ پارامتر است، استفاده می شود.

آموزش کار با تابع تخریب کننده یا Destractor در C# :

تابع تخریب کننده یا Destractor در زبان C#، متدی است که در هنگام از بین رفتن یک شی از کلاس، اجرا می شود. زبان C#، یک زبان پاک کننده خودکار سیستم یا collector garbage است، به این معنی که object هایی که دیگر در برنامه نیاز ندارید را جهت خالی کردن حافظه و آزاد نمودن سیستم، پاک می کند.
از طرف دیگر در برخی موارد شاید نیاز داشته باشید تا یک Clean up در سیستم انجام دهید، اینجاست که تابع های تخریب کننده Destructor به کار می آیند.
تابع های تخریب کننده چندان شبیه سایر متدها در زبان C# نیستند. در کد عملی زیر یک مثال از تابع تخریب کننده نشان داده شده است :
?
۱
۲
۳
۴

~Car()
{
Console.WriteLine(“Out..”);
}

به محض این که شی یا object ایجاد شده از کلاس، توسط تمیز کننده خودکار garbage collector جمع آوری شده، متد فوق فراخوانی می شود.