1. Giới thiệu

Trong C# 12, Microsoft đã giới thiệu một tính năng mới gọi là “Primary Constructors” (hay còn gọi là Constructors chính). Tính năng này nhằm mục đích đơn giản hóa cách viết và quản lý các constructor, đặc biệt là cho các lớp nhỏ hoặc các loại dữ liệu (data types) như record. Primary constructors cho phép bạn khai báo và khởi tạo các trường dữ liệu trực tiếp trong phần khai báo của lớp hoặc record.

 

Facebook Image post 1200x630 1

2. Primary Constructors là gì?

Primary constructors là một cách để định nghĩa các constructor chính trực tiếp tại định nghĩa của lớp hoặc record. Điều này giúp giảm bớt sự lặp lại và làm cho mã nguồn trở nên ngắn gọn, dễ đọc hơn.

Ví dụ, thay vì định nghĩa constructor truyền thống trong lớp, bạn có thể sử dụng primary constructor để khai báo các tham số trực tiếp trong phần định nghĩa của lớp.

3. Cú pháp và cách sử dụng

3.1. Record

Cú pháp của primary constructor trong record rất đơn giản. Bạn chỉ cần khai báo các tham số trực tiếp trong phần định nghĩa của record.

Trong ví dụ trên, Person có một primary constructor nhận hai tham số: NameAge. Điều này tự động tạo ra các thuộc tính không thể thay đổi (immutable properties) và các phương thức như ToString, Equals, và GetHashCode.

3.2. Class

Primary constructor trong class có thể được khai báo bằng cách thêm các tham số vào phần định nghĩa của class.

Trong ví dụ này, Employee có một primary constructor nhận hai tham số: nameage. Các tham số này sau đó được sử dụng để khởi tạo các thuộc tính NameAge.

3.3. Sử dụng với inheritance

Primary constructors cũng hỗ trợ kế thừa (inheritance).

3.4. Sử dụng với DI

Giả sử bạn có một dịch vụ (IService) cần được inject vào một lớp Consumer. Bạn có thể sử dụng primary constructor để thực hiện điều này.

 

4. Lợi ích của Primary Constructors

4.1. Giảm bớt sự lặp lại

Primary constructors giúp giảm bớt sự lặp lại trong mã nguồn. Bạn không cần phải định nghĩa lại các thuộc tính và các phương thức khởi tạo riêng lẻ.

4.2. Mã nguồn ngắn gọn và dễ đọc

Với primary constructors, mã nguồn trở nên ngắn gọn và dễ đọc hơn. Điều này đặc biệt hữu ích khi làm việc với các lớp dữ liệu nhỏ và đơn giản.

4.3. Hỗ trợ mạnh mẽ cho các loại dữ liệu

Primary constructors rất hữu ích khi làm việc với các loại dữ liệu như record. Chúng tự động tạo ra các phương thức như Equals, GetHashCode, và ToString, giúp tiết kiệm thời gian và công sức của lập trình viên.

 

Primary constructors là một tính năng mới và mạnh mẽ trong C# 12, giúp đơn giản hóa và tối ưu hóa cách viết constructor. Chúng mang lại nhiều lợi ích, đặc biệt là trong việc giảm bớt sự lặp lại và làm cho mã nguồn trở nên ngắn gọn, dễ đọc hơn.

Phạm Hoài Thương

Software Engineer

About the Author

Creating an application is easy, but creating a Great, Production-Ready Application is a whole different story. Một thợ code đang mong muốn trở thành một kỹ sư thực thụ. Đây là nơi tôi chia sẽ những kiến thức tôi đọc qua hoặc trải nghiệm cảm thấy hay ho.

View Articles