دسته بندی ها
00:39 1399/12/07

سازنده کلاس یا Constructor در سی شارپ چیست ؟

مشخصات سوال کننده :
کاربر : hamdola     امتیاز کاربر : 121     رتبه کاربر : 12
دسته بندی : سی شارپ

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 9561
هوش مصنوعی

پاسخ هوش مصنوعی

سازنده (Constructor) در سی شارپ یک متد ویژه است که برای ایجاد و راه اندازی شیء از کلاس مورد استفاده قرار می گیرد. سازنده ها معمولاً به نام کلاس خود نام گذاری می شوند و نیازی به نوع بازگشتی ندارند. هدف اصلی سازنده این است که مقادیر اولیه را به متغیرهای اعضای کلاس اختصاص دهد و هرگونه تنظیمات اولیه لازم را انجام دهد.

اگر برای یک کلاس سازنده ایجاد نکنید، سی شارپ به صورت خودکار یک سازنده پیش فرض (parameterless constructor) ایجاد می کند که تمام مقادیر اعضای کلاس را به مقادیر پیش فرض خود (مانند 0 برای انواع عددی و null برای انواع مرجع) تنظیم می کند. بنابراین، تفاوت اصلی بین وجود یک سازنده و عدم وجود آن، این است که اگر شما سازنده ای با پارامتر برای مقداردهی اولیه اعضای خود ایجاد کنید، می توانید کنترل بیشتری بر روی مقادیر اولیه داشته باشید.

به عنوان مثال:


class Person
{
    public string Name;
    public int Age;

    // سازنده با پارامتر
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

در این مثال، می توانیم یک شیء از کلاس Person را با نام و سن مشخص ایجاد کنیم. اگر سازنده ای وجود نداشت، نمی توانیم مقادیر را به صورت مستقیم تنظیم کنیم.

استفاده از سازنده ها این قابلیت را می دهد که هنگام ایجاد شیء اطلاعات مورد نیاز را به راحتی وارد کنیم و از وضعیت نادرست اشیاء جلوگیری کنیم.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 23:26 1399/12/08

سازنده کلاس یا Constructor در سی شارپ

 

سازنده کلاس در سی شارپ چیست

 

در ابتدا یک تعریف رسمی از سازنده کلاس یا Constructor بهتون میگم.

سازنده کلاس یک متد از نوع Public می باشد که دقیقا هم نام با نام کلاس می باشد. این متد دارای خروجی نمی باشد ولی میتواند ورودی داشته باشد. ورودی این متد در واقع همان پارامترها یا ورودی کلاس می باشد.

در ادامه یک مثال ساده از ایجاد سازنده کلاس را مشاهده می کنید. در این مثال یک کلاس به نام Car داریم که درون خود یک سازنده به نام Car دارد.

public class Car
{
    //Constructor
    public Car()
    {

    }
}

نکته : برای ایجاد سازنده کلاس می توانید عبارت ctor را بنویسید و دو بار دکمه Tab روی صفحه کلید را بزنید. به صورت اتوماتیک سازنده کلاس ساخته خواهد شد.

 

کاربرد سازنده کلاس چیست ؟

کاربرد اصلی سازنده کلاس این می باشد که اگر شما کلاسی داشته باشید که برای ساختن یک نمونه از آن نیاز به چند پارامتر ورودی داشته باشد، این پارامترهای ورودی را می توانید در سازنده کلاس تعریف و حین ساختن نمونه از کلاس مقدار آن را مشخص کنید.

به عنوان مثال فرض کنید در مثال بالا که یک کلاس به نام Car داریم، میخواهیم هر موقع نمونه ای از این کلاس ایجاد شد برخی از مشخصات خودرو مثل 'رنگ'، 'وزن'، 'قیمت' و 'نام' آن هم مشخص باشد. خب پس کلاس Car در ورودی خود باید دارای 4 پارامتر باشد.

public class Car
{
    //Constructor
    public Car(string color, int weigth, long price, string name)
    {

    }
}

خب همانطور که مشاهده می کنید در سازنده کلاس Car چهار پارامتر ورودی هم ایجاد کردیم. بنابراین زمانی که قصد داشته باشیم یک نمونه از کلاس Car را تعریف و از آن استفاده کنیم باید هر چهار پارامتر مشخص شود. البته دقت کنید که برای استفاده از این کلاس باید به صورت زیر کلاس تعریف شود.

public class Car
{
    public string _color;
    public int _weigth;
    public long _price;
    public string _name;

    //Constructor
    public Car(string color, int weigth, long price, string name)
    {
        _color = color;
        _weigth = weigth;
        _price = price;
        _name = name;
    }
}

خب حالا به راحتی می توانید از این کلاس استفاده کنید و مقادیر خواسته شده را هم مشخص کنید.

Car pride = new Car('whith',850,80000000,'Pride');
//
Car pride = new Car('whith',1200,2000000000,'405Slx');
//
Car pride = new Car('whith',1250,2300000000,'pars');

در تصویر زیر هم می توانید نحوه استفاده از سازنده کلاس را در محیط ویژوال استودیو مشاهده کنید:

 

نحوه استفاده از سازنده کلاس

 

مخرب کلاس یا Destructor

البته این مورد جزو سوال شما نبود ولی ترجیح دادم با مخرب کلاس یا Destructor هم آشناتون کنم. وقتی شما یک نمونه از یک کلاس را ایجاد می کنید در همان لحظه اتوماتیک سازنده کلاس اجرا می شود. حالا وقتی آبجکت می خواهد از حافظه خارج شود مخرب کلاس به صورت اتوماتیک اجرا می شود و دستورات درون آن اجرا می شود. برای تعریف مخرب کلاس می توانید به صورت زیر عمل کنید.

public class Car
{
    //Constructor
    ~ Car()
    {
       //Some Code
    }
}

 

همان طور که مشاهده می کنید مخرب کلاس هم همنام با نام خود کلاس می باشد فقط در ابتدای آن علامت ~ و یه فاصله می آید.

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود