نیمچه برنامه نویس و توسعه دهنده بازی
کارهای جذاب با تابع سازنده Constructor در سی شارپ
در حال دیدن ویدیو هایی در رابطه با زبان سی شارپ بودم که متوجه یک نکته جالب شدم که برای خودم هیجان انگیز بود و گفتم شاید برای شما نیز جالب و کاربردی باشد.
در زبان سی شارپ، کلاس ها توابعی تحت عنوان سازنده (Constructor) دارند که در موقع ساخت یک نمونه (instance) از یک کلاس فراخوانی می شوند و کار هایی که برا آن ها تعریف شده باشد را انجام میدهند.
در کلاس ها می توانیم چندین تابع سازنده داشته باشیم که هرکدام متناسب با پارامتر هایی که می خواهند صدا زده شوند. ماننده مثال زیر:
class Person
{
public string Name;
public int id;
public Person( )
{
Console.WriteLine("person Constructor 0");
}
public Person(int id)
{
this.id = id;
Console.WriteLine("person Constructor 1");
}
public Person(int id, string name)
{
this.id = id;
this.Name = name;
Console.WriteLine("person Constructor 2");
}
}
حال ما می توانیم یک نمونه از این کلاس بسازیم و متناسب با پارامتر هایی که به تابع سازنده آن ارسال میکنیم، یکی از توابع سازنده آن اجرا شوند.
احتمالا خیلی از دوستان تا به اینجای مسئله را آگاهی دارند اما نکته قابل توجه و جالبی که می خواستم راجب آن با شما صحبت کنم این است که ما می توانیم این توابع سازنده را به ترتیب و پشت هم با یک دستور فرا خوانی کنیم :)
به اسکریپت زیر که تغییر یافته اسکریپت بالا با استفاده از نکته ذکر شده است توجه کنید :
class Person
{
public string Name;
public int id;
public Person()
{
Console.WriteLine("person Constructor 0");
}
public Person(int id)
: this()
{
this.id = id;
Console.WriteLine("person Constructor 1");
}
public Person(int id, string name)
: this(id)
{
this.Name = name;
Console.WriteLine("person Constructor 2");
}
}
حال اگر قطعه کد زیر را در تابع Main اجرا کنیم شاهد فراخوانی تمامی توابع سازنده خواهیم بود که به ترتیب فراخوانی می شوند.
var p = new Person(5, "sina");
این هم از خروجی به همراه دو قطعه کد اضافی
موفق و خندون باشید. :)
مطلبی دیگر از این انتشارات
دیجیتال برندینگ چیست؟
مطلبی دیگر از این انتشارات
آموزش ماشین لرنینگ با پایتون ( پارت پنجم- کلسیفیکیشن)
مطلبی دیگر از این انتشارات
از بوتیک تا دیوار، پراید غریبهای تمام ایرانی