فهرست سرفصل‌های #C
خانه (HOME) مقدمه (Intro) شروع کار (Get Started) سینتکس (Syntax) خروجی (Output) کامنت ها (Comments) متغیرها (Variables) ثابت ها (Constants) نمایش متغیرها (Display Variables) متغیرهای متعدد (Multiple Variables) شناسه ها (Identifiers) انواع داده (Data Types) تبدیل نوع (Type Casting) ورودی کاربر (User Input) عملگرها (Operators) انتساب (Assignment) مقایسه (Comparison) منطقی (Logical) ریاضی (Math) رشته ها (Strings) اتصال رشته ها (Concatenation) درون گذاری رشته (Interpolation) دسترسی به رشته ها (Access Strings) کاراکترهای ویژه (Special Characters) بولی ها (Booleans) if (If...Else) else (If...Else) else if (If...Else) شکل کوتاه if..else (Short hand if..else) سوئیچ (Switch) حلقه while (While Loop) حلقه for (For Loop) حلقه foreach (Foreach loop) شکستن/ادامه (Break/Continue) آرایه ها (Arrays) حلقه روی آرایه (Loop through an array) مرتب سازی آرایه ها (Sort arrays) آرایه های چندبعدی (Multidimensional arrays) متدها (Methods) پارامترها (Parameters) پارامتر پیش فرض (Default Parameter) مقادیر بازگشتی (Return Values) آرگومان های نام دار (Named Arguments) بارگذاری متد (Method Overloading) شیء گرایی (OOP) کلاس ها/اشیا (Classes/Objects) چند شیء (Multiple Objects) اعضای کلاس (Class Members) سازنده ها (Constructors) قیدهای دسترسی (Access Modifiers) ویژگی ها (Properties) وراثت (Inheritance) چندریختی (Polymorphism) انتزاع (Abstraction) اینترفیس (Interface) چند اینترفیس (Multiple Interfaces) شمارش ها (Enums) فایل ها (Files) استثناها (Exceptions) افزودن دو عدد (Add Two Numbers) نمونه ها (Examples)
#C

#C — سازنده ها (Constructors)

آخرین بروزرسانی: 1404/08/05

سازنده ها (Constructors)

سازنده یا Constructor یه متد خاصه که وقتی یه شیء (Object) از یه کلاس ساخته می کنی، خودش خودکار اجرا میشه. سازنده برای مقداردهی اولیه فیلدهاست، یعنی مثل آماده سازی وسایل قبل از شروع بازی.

ایجاد یک سازنده ساده

بیایید یه کلاس Car بسازیم که خودش مقدار اولیه مدل ماشین رو تنظیم کنه.

class Car
{
  public string model;

  public Car()
  {
    model = "Mustang";
  }

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

مشاهده در ادیتور

نکته: نام سازنده باید دقیقاً مثل نام کلاس باشد و هیچ نوع بازگشتی (مثل void) ندارد. اگر خودت نسازی، سی شارپ خودش یه سازنده خالی می سازه ولی نمی تونی مقدار اولیه بدهی.

سازنده با پارامتر

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

class Car
{
  public string model;

  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;

  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);
  }
}

مشاهده در ادیتور

نکته: مثل بقیه متدها، می تونی سازنده ها رو Overload کنی؛ یعنی چند سازنده با پارامترهای مختلف داشته باشی.

سازنده ها چطور زمان ذخیره می کنند

بدون سازنده باید یکی یکی مقادیر رو دستی تنظیم کنی. ولی با سازنده فقط یه خط کد می نویسی و همه چی آماده است.

بدون سازنده:

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);
  }
}

مشاهده در ادیتور

جمع بندی سریع

  • سازنده هنگام ساخت شیء خودکار اجرا می شود.
  • نامش باید مثل نام کلاس باشد.
  • نوع بازگشتی ندارد.
  • می تواند پارامتر داشته باشد.
  • کد را کوتاه و تمیز می کند.

برای ادامه یادگیری، بخش اعضای کلاس و قیدهای دسترسی را هم ببین.