This article is currently in the process of being translated into Thai (~97% done).
Constructors and destructors
Constructor เป็น method แบบพิเศษ ใช้สร้าง instance object ของ class เหมือนการสร้างแบบจำลองออกมาจากพิมพิ์เขียว method จะไม่ return ค่าใดๆ เพราะฉะนั้นก็ไม่ต้องตั้งชนิดของค่า return ถ้าเป็น method ธรรมดา หน้าตาจะเป็นแบบนี้
public string Describe()
แต่ถ้าเป็น constructor หน้าตาจะเป็นแบบนี้
public Car()
ในตัวอย่างของเรา เรามี class ชื่อ Car ที่มี string เป็น argument (ส่งตัวแปรผ่านทาง method) เราสามารถมี constructor ได้หลายอัน ที่มีชื่อเหมือนกัน แต่ parameter ไม่เหมือนกัน เราเรียกว่า overload
public Car()
{
}
public Car(string color)
{
this.color = color;
}
Constructor ก็สามารถเรียกใช้ constructor อื่นได้ เช่น
public Car()
{
Console.WriteLine("Constructor with no parameters called!");
}
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
ถ้า run โค้ดนี้ เราจะเห็นได้ว่า contructor ที่ไม่มี parameter จะถูกเรียกก่อน วิธีนี้จะเอาไว้สร้าง object ที่มีลักษณะ property ที่จำเป็นจะต้องตั้งค่าเริ่มต้นที่ต่างกัน
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
public Car(string param1, string param2) : this(param1)
{
}
ตามตัวอย่างด้านล่าง ถ้าเราเรียก contructor ที่มี parameter 2 อัน constructor ที่มี parameter 1 อัน จะถูกเรียกเป็นอันดับที่ 2 รองจาก contructor ที่ไม่มี parameter
Destructors (Method ใช้สำหรับ clean up)
object นั้นๆให้ แต่บางทีเราต้องทำเอง destructor จะถูกเรียกใช้ เมื่อเรากำจัด object ออกไป
~Car()
{
Console.WriteLine("Out..");
}
เมื่อ object ถูกนำมารวบรวมโดย garbage collector เพื่อกำจัดออก เหมือนตัวอย่างด้านบน method destructor จะถูกเรียกใช้