Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Default Constructor ใน C#

Constructor ใน C# คือเมธอดพิเศษที่เรียกอัตโนมัติเมื่อสร้าง Object (new ClassName()) มีชื่อเดียวกับคลาส ไม่มี Return Type

Default Constructor (Parameterless Constructor)

  • Constructor ที่ไม่มี Parameter
  • ถ้าไม่เขียน Constructor ใดๆเลย Compiler จะสร้าง Default Constructor ให้อัตโนมัติ
  • ถ้าเขียน Constructor ที่มี Parameter แล้ว Compiler จะไม่สร้าง Default Constructor ให้

ตัวอย่าง: Default Constructor

using System;

public class Department
{
    // Default Constructor - ไม่มี Parameter
    public Department()
    {
        Console.WriteLine("Constructor Invoked");
    }
    
    public static void Main(string[] args)
    {
        // Object สร้างขึ้น -> Constructor เรียกทันที
        Department dept1 = new Department();
    }
}

ผลลัพธ์

Constructor Invoked

Constructor Overloading (หลาย Constructor)

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    
    // Default Constructor
    public Person() { }
    
    // Constructor with Parameters
    public Person(string name) 
    {
        Name = name;
    }
    
    public Person(string name, int age) : this(name)
    {
        Age = age;
    }
}

Constructor Chaining (this/base)

public class Child : Parent
{
    public Child() : this("Default") { }           // เรียก Constructor อีกตัวในคลาสเดียวกัน
    public Child(string name) : base(name) { }     // เรียก Base Constructor
}

Static Constructor (เพิ่มเติม)

public class Config
{
    static Config() { /* รันครั้งเดียวก่อน Static Member แรก */ }
}

สรุป

ประเภทParameterสร้างโดย Compilerใช้สำหรับ
Defaultไม่มีถ้าไม่มี Constructor ใดๆDefault Initialization
Parameterizedมีไม่เคยInitialize ด้วยค่าเฉพาะ
Staticไม่มีไม่เคยInitialize Static Fields
Privateได้ไม่เคยSingleton, Factory Pattern