×

Tạo hàm khởi tạo (constructor) và hàm huỷ trong C#

Trong lập trình hướng đối tượng, hàm khởi tạo và hàm hủy là hai thành phần quan trọng giúp quản lý vòng đời của đối tượng trong lớp. Trong C#, việc sử dụng hàm khởi tạo và hàm hủy được thực hiện một cách rõ ràng và hiệu quả. Bài viết này sẽ giải thích cách tạo và sử dụng chúng cũng như ý nghĩa của chúng trong ngôn ngữ C#.

Hàm khởi tạo

Hàm khởi tạo, hay còn gọi là constructor, là một phương thức đặc biệt được gọi khi một đối tượng của lớp được khởi tạo. Hàm khởi tạo không có kiểu trả về và có tên giống với tên của lớp.

Tạo hàm khởi tạo

Cách tạo hàm khởi tạo đơn giản là định nghĩa một phương thức trong lớp với tên trùng với tên lớp. Dưới đây là ví dụ về cách tạo hàm khởi tạo trong C#:

public class Person
{
    public string Name;
    public int Age;

    // Hàm khởi tạo
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

Trong ví dụ trên, khi một đối tượng của lớp Person được tạo bằng cách gọi new Person("John", 30), hàm khởi tạo sẽ gán giá trị cho các thuộc tính NameAge.

Hàm khởi tạo mặc định

Nếu không khai báo hàm khởi tạo, C# sẽ tự động tạo một hàm khởi tạo mặc định không tham số cho lớp. Tuy nhiên, nếu một hàm khởi tạo có tham số đã được định nghĩa, hàm khởi tạo mặc định sẽ không được tạo tự động. Bạn cần khai báo riêng nếu muốn sử dụng:

public class Person
{
    public string Name;
    public int Age;

    // Hàm khởi tạo mặc định
    public Person()
    {
        Name = "Unknown";
        Age = 0;
    }

    // Hàm khởi tạo có tham số
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

Hàm hủy

Hàm hủy, hay còn gọi là destructor, là một phương thức đặc biệt được gọi khi một đối tượng bị hủy để giải phóng tài nguyên hoặc thực hiện các thao tác dọn dẹp khác. Hàm hủy có tên giống với tên lớp nhưng có dấu ngã (~) ở trước và không có tham số hoặc kiểu trả về.

Tạo hàm hủy

Dưới đây là ví dụ về cách tạo hàm hủy trong C#:

public class Person
{
    public string Name;
    public int Age;

    // Hàm khởi tạo
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }

    // Hàm hủy
    ~Person()
    {
        // Thực hiện các thao tác dọn dẹp
        Console.WriteLine("Destructor called for " + Name);
    }
}

Trong ví dụ trên, khi đối tượng Person bị hủy, hàm hủy sẽ được gọi và in ra thông báo. Tuy nhiên, cần lưu ý rằng lập trình viên không thể kiểm soát chính xác khi nào hàm hủy được gọi vì công việc này do Garbage Collector của .NET quản lý.

Kết luận

Hiểu và sử dụng đúng cách hàm khởi tạo và hàm hủy là yếu tố quan trọng trong lập trình hướng đối tượng với C#. Hàm khởi tạo giúp thiết lập giá trị ban đầu cho đối tượng, trong khi hàm hủy hỗ trợ việc dọn dẹp tài nguyên. Việc nắm vững kiến thức này sẽ giúp lập trình viên viết mã hiệu quả và an toàn hơn.

Comments