Tìm hiểu hàm tạo chính trong C# là gì và nó có thể đơn giản hóa mã của bạn như thế nào. Xem cách khai báo và sử dụng hàm tạo chính bằng các ví dụ.
Hàm tạo chính là một tính năng mới trong C# 12 cho phép bạn khai báo và sử dụng các tham số của hàm tạo ở bất kỳ đâu trong phần thân của một lớp hoặc một cấu trúc. Chúng là một cách ngắn gọn để khởi tạo các thuộc tính hoặc trường, gọi hàm tạo cơ sở hoặc tham chiếu các tham số trong các thành viên khác của loại.
Ví dụ: bạn có thể khai báo một lớp với hàm tạo chính như thế này:
public class Person(string name, int age)
{
// primary constructor parameters are in scope here
}
Tên và tuổi của tham số hàm tạo chính không phải là thuộc tính công khai, nhưng chúng có thể được sử dụng để khởi tạo các thuộc tính công khai, như sau:
public class Person(string name, int age)
{
public string Name { get; } = name; // initialize a readonly property
public int Age { get; set; } = age; // initialize a read-write property
}
Bạn cũng có thể sử dụng các tham số của hàm tạo chính để gọi hàm tạo cơ sở, như sau:
public class Student(string name, int age, string school) : Person(name, age)
{
public string School { get; } = school;
}
Hàm tạo chính của Sinh viên gọi hàm tạo chính của Người với các tham số tên và tuổi, sau đó khởi tạo thuộc tính School của chính nó với tham số trường học.
Bạn cũng có thể tham chiếu các tham số của hàm tạo chính trong các thành viên khác của loại, chẳng hạn như phương thức, trường hoặc thành viên có nội dung biểu thức, như sau:
public class Circle(double radius)
{
public double Area => Math.PI * radius * radius; // expression-bodied property
public double Circumference => 2 * Math.PI * radius; // expression-bodied property
public void PrintInfo()
{
Console.WriteLine($"A circle with radius {radius} has area {Area} and circumference {Circumference}");
}
}
Bán kính tham số của hàm tạo chính được sử dụng để tính diện tích và chu vi của hình tròn cũng như in thông tin trong phương thức PrintInfo.
Hàm tạo chính rất hữu ích khi bạn muốn giảm số lượng mã soạn sẵn cần viết và khi bạn muốn có một cách nhất quán để truy cập các tham số của hàm tạo trong toàn bộ kiểu. Tuy nhiên, có một số hạn chế và quy tắc bạn cần lưu ý khi sử dụng hàm tạo chính: