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

Default Constructor ใน C#

Default Constructor ใน C#

Default Constructor คือ Constructor ที่ไม่มีพารามิเตอร์ เรียกอัตโนมัติเมื่อสร้างอ็อบเจกต์ด้วย new ClassName()

ลักษณะเฉพาะ

  • ไม่มีพารามิเตอร์: public ClassName() { }
  • ถ้าไม่เขียน Constructor ใดๆ Compiler จะสร้าง Default Constructor ให้อัตโนมัติ (Implicit)
  • ถ้าเขียน Constructor ที่มีพารามิเตอร์แล้ว จะไม่มี Default Constructor อัตโนมัติ ต้องเขียนเองถ้าต้องการ

ตัวอย่าง: Default Constructor แบบ Explicit


using System;

public class Department
{
    public Department()
    {
        Console.WriteLine("Constructor Invoked");
    }
    
    public static void Main(string[] args)
    {
        Department dept1 = new Department(); // เรียก Default Constructor
    }
}

ผลลัพธ์


Constructor Invoked

ตัวอย่าง: Implicit vs Explicit


// ไม่มี Constructor -> Compiler สร้าง Default ให้
class A { }
var a = new A(); // OK

// มี Parameterized Constructor -> ไม่มี Default อัตโนมัติ
class B
{
    public B(int x) { }
}
var b = new B(); // Compile Error! ไม่มี Default Constructor
var b2 = new B(10); // OK

Static Constructor (คอนสตรัคเตอร์สแตติก)

  • เรียกครั้งเดียวก่อน Static Member แรกถูกเข้าถึง
  • ไม่มี Access Modifier, ไม่มี Parameter
  • ใช้ Initialize Static Fields

class Config
{
    public static string ConnectionString;
    
    static Config() // Static Constructor
    {
        ConnectionString = LoadFromConfigFile();
    }
}

Constructor Chaining (this/base)


class Employee
{
    public string Name { get; }
    public int Id { get; }
    
    // Primary Constructor
    public Employee(int id, string name)
    {
        Id = id; Name = name;
    }
    
    // Chaining to Primary
    public Employee(int id) : this(id, "Unknown") {}
    public Employee() : this(0, "Unknown") {}
}