class Car
{
public string model;
public Car()
{
model = "Mustang";
}
static void Main(string[] args)
{
Car Ford = new Car();)
Console.WriteLine(Ford.model);
}
}
توجه داشته باشید که نام سازنده باید با نام کلاس مطابقت داشته باشد و نمی تواند نوع بازگشتی داشته باشد (مانند void یا int).
همچنین توجه داشته باشید که سازنده هنگام ایجاد شی فراخوانی می شود.
همه کلاس ها به طور پیش فرض سازنده دارند: اگر خودتان سازنده کلاس ایجاد نکنید، سی شارپ یکی را برای شما ایجاد می کند. اما ، در این صورت نمی توانید مقادیر اولیه را برای فیلدها تنظیم کنید.
سازندگان در وقت صرفه جویی می کنند! نگاهی به آخرین مثال در این صفحه بیندازید تا واقعاً دلیل آن را بفهمید.
پارامتر های سازنده (Constructor Parameters)
سازنده ها همچنین می توانند پارامترهایی را بعنوان ورودی دریافت کنند که از آنها برای مقداردهی اولیه فیلدها استفاده می شود.
مثال زیر پارامتر رشته ای modelName را به سازنده اضافه می کند. در داخل سازنده ما مدل را به modelName تنظیم می کنیم (model = modelName). وقتی سازنده را صدا می کنیم ، یک پارامتر به سازنده می دهیم ("Mustang") ، که مقدار مدل را به "Mustang" تنظیم می کند:
class Car
{
public string model;
// Create a class constructor with a parameter
public Car(string modelName)
{
model = modelName;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang");
Console.WriteLine(Ford.model);
}
}
می توانید پارامترهای دلخواه خود را داشته باشید:
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;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Console.WriteLine(Ford.color + " " + Ford.year + " " + Ford.model);
}
}
نکته: درست مانند سایر متدها ، Constructor ها می توانند با استفاده از تعداد مختلف پارامترها overload شوند.
Constructors Save Time
وقتی مثالی از درس قبل را در نظر می گیرید ، متوجه می شوید که سازنده ها بسیار مفید هستند ، زیرا به کاهش مقدار کد کمک می کنند:
بدون کانستراکتور:
class Program
{
static void Main(string[] args)
{
Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}
همراه با کانستراکتور:
class Program
{
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Car Opel = new Car("Astra", "White", 2005);
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}