C# 12 vừa được release cách đây không lâu và có một tính năng mới khá nổi bật có tên là Primary Constructor. Tính năng này nhằm đơn giản hóa việc khởi tạo các thuộc tính trong các class, đặc biệt đối với các class có nhiều thuộc tính. Trong bài viết này, hãy cùng khám phá Primary Constructor có gì nổi bật nhé.

Mở đầu

Trước khi đi sâu vào tìm hiểu, chúng ta hãy xem class constructor hoạt động như thế nào trong C#. Trong C#, constructor là một phương thức đặc biệt được dùng khi một object class được tạo, thường liên quan đến việc thiết lập các giá trị của lớp thuộc tính.

Đây là một ví dụ về một class điển hình với constructor trong C#,

public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime HireDate { get; set; }
    public decimal Salary { get; set; }

    public Employee(string firstName, string lastName, DateTime hireDate, decimal salary)
    {
        FirstName = firstName;
        LastName = lastName;
        HireDate = hireDate;
        Salary = salary;
    }
}

Primary Constructors là gì?

Đây là một tính năng mới trong C# 12 cho phép bạn xác định và khởi tạo các thuộc tính trực tiếp trong danh sách tham số của Constructor. Tính năng này loại bỏ yêu cầu lặp lại code và làm cho code của bạn ngắn gọn và dễ đọc hơn.

Cách sử dụng Primary Constructor

Hãy bắt đầu với một ví dụ về việc sử dụng Primary Constructor với một class “Employee”. Đây là cách bạn xác định một class “Employee”:

public class Employee(string firstName, string lastName, DateTime hireDate, decimal salary)
{
    public string FirstName { get; init; } = firstName;
    public string LastName { get; init; } = lastName;
    public DateTime HireDate { get; init; } = hireDate;
    public decimal Salary { get; init; } = salary;
}

Trong ví dụ này, bài viết đã xác định một class “Employee” với bốn thuộc tính: FirstName, LastName, HireDate và Salary. Bài viết cũng đã sử dụng keyword init để làm cho các thuộc tính ở chế độ read-only và khởi tạo chúng trực tiếp trong danh sách tham số của Primay Constructor.

Đây là cách bạn sẽ tạo một object Employee mới:

var employee = new Employee("John", "Doe", new DateTime(2020, 1, 1), 50000);

Object Employee được tạo với các tham số FirstName, lastName, HireDate và Salary, được sử dụng để khởi tạo các thuộc tính tương ứng.

Lưu ý: Class Employee không có constructor method (phương thức khởi tạo hàm) với parameterless constructor (phương thức khởi tạo không có tham số), vì vậy bạn sẽ gặp error compiler nếu bạn cố gắng tạo một object bằng hàm tạo mặc định.

Primary Constructor hoạt động hiệu quả với các class có nhiều thuộc tính, vì chúng giảm số lượng boilerplate code cần thiết để khởi tạo. Ngoài ra, việc sử dụng tính năng này còn giúp code của bạn dễ đọc hơn và giảm nguy cơ xảy ra lỗi do các câu lệnh khởi tạo bị thiếu hoặc sắp xếp không chính xác.

Lời kết

Như vậy, bạn đã vừa tìm hiểu tính năng mới của C# 12 và cách Primary Constructor hoạt động, nếu thấy hay nhớ chia sẻ cho bạn bè cùng biết nhé!

VietnamWorks inTECH