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 |