تابع سازنده در سی شارپ

ارسال شده توسط: حسین درویشی Comments: 0

تابع سازنده در سی شارپ

یکی از مفاهیم مهمِ شی گرایی در سی شارپ، تابع سازنده می باشد. تابع سازنده در سی شارپ در داخل یک کلاس قابل تعریف بوده و در هنگام تعریف شیء از کلاس این تابع فراخوانی می شود.

تابع سازنده چیست؟

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

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

چگونگی تعریف متد سازنده در سی شارپ

برای تعریف تابع سازنده در سی شارپ باید یک تابع هم نام با کلاس ایجاد کرد. برای مثال کلاس Car را در نظر بگیرید، می خواهیم برای کلاس Car یک سازنده ایجاد کنیم:

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

class Car
{
public string model;  // Create a field
// Create a class constructor for the Car class
public Car()
{
model = "Mustang"; // Set the initial value for model
}
}

حال به تابع main مراجعه کرده و از این کلاس که دارای تابع Constructor می باشد، یک نمونه می سازیم:

  static void Main(string[] args)
{
Car Ford = new Car("Mustang");
Console.WriteLine(Ford.model);
}
// Outputs "Mustang"

اکنون قصد داریم به تابع سازنده در سی شارپ ، آرگومان قرار بدیم:

کلاس Car را اکنون بشکل زیر در نظر بگیرید:

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

class Car
{
public string model;
public string color;
public int year;
// Create a class constructor with multiple parameters
public Car(string modelName, string modelColor, int modelYear)
{
model = modelName;
color = modelColor;
year = modelYear;
}
}

اکنون مراجعه می کنیم به تابع main:

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

 static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Console.WriteLine(Ford.color + " " + Ford.year + " " + Ford.model);
}
}
// Outputs Red 1969 Mustang

تعریف چند سازنده در یک کلاس

حالت های قبلی فقط یک متد سازنده در سی شارپ تعریف داشتند، حال می خواهیم ببینیم آیا می توان بیشتر از یک سازنده در یک کلاس تعریف کرد؟

پاسخ: بله می توان بیش تر از یک سازنده در یک کلاس تعریف کرد، منتهی باید در شرایط زیر صدق کند:

  • دارای آرگومان های متفاوتی در تعداد، نوع و ترتیب داشته باشند

حال موقع فراخوانی، کمپایلر از کجا می فهمد که منظور ما کدام سازنده هست؟

پاسخ: این کار بسیار ساده هست اگر نمونه ایجاد شده را بدون آرگومان رها کنید، مورد دومی انتخاب می شود در غیر اینصورت اگر دوتا پارامتر ارسال کنید کامپایلر به طور خودکار به مورد اولی سوئیچ می زند.

class Car
{
public string model;
public string color;
public int year;
// Create a class constructor with multiple parameters
public Car(string modelName, string modelColor, int modelYear)
{
model = modelName;
color = modelColor;
year = modelYear;
}
public Car()
{
model = "Mustang"; // Set the initial value for model
}
}

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *