Hàm tạo chính trong C#: Giải thích đơn giản

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:

  • Các tham số của hàm tạo chính không được lưu trữ dưới dạng các trường trừ khi chúng cần thiết. Điều này có nghĩa là chúng không tiêu tốn bộ nhớ hoặc ảnh hưởng đến kích thước của loại.
  • Các tham số của hàm tạo chính không phải là thành viên của kiểu. Điều này có nghĩa là bạn không thể truy cập chúng bằng cách sử dụng this hoặc base hoặc sử dụng chúng trong các đối số thuộc tính hoặc giá trị tham số mặc định.
  • Các tham số của hàm tạo chính có thể được gán cho chúng, nhưng chúng không phải là thuộc tính. Điều này có nghĩa là chúng không có getters hoặc setters và chúng không hỗ trợ các thuộc tính hoặc công cụ sửa đổi.
  • Các tham số của hàm tạo chính chỉ có sẵn ở loại mà chúng được khai báo. Điều này có nghĩa là các kiểu dẫn xuất không kế thừa chúng và không hiển thị đối với người gọi bên ngoài.
  • Mọi hàm tạo khác của một lớp phải gọi hàm tạo chính, trực tiếp hoặc gián tiếp, thông qua lệnh gọi hàm tạo this(). Điều này đảm bảo rằng các tham số của hàm tạo chính luôn được gán và có sẵn trong kiểu.

#csharp  #aspdotnet  #dotnet 

Hàm tạo chính trong C#: Giải thích đơn giản
1.30 GEEK