Câu hỏi phỏng vấn C#
Câu hỏi

partial class trong C# là gì?

Câu trả lời

Trong C#, partial class là một tính năng cho phép bạn chia định nghĩa của một lớp (class) thành nhiều file. Mỗi phần của lớp được định nghĩa với từ khóa partial, và khi ứng dụng được biên dịch, tất cả các phần này sẽ được kết hợp lại thành một lớp duy nhất.

Đặc điểm của Partial Class

  • Chia nhỏ định nghĩa lớp: Cho phép bạn chia nhỏ định nghĩa của một lớp lớn và phức tạp thành các phần nhỏ hơn, giúp quản lý mã nguồn dễ dàng hơn.
  • Tổ chức mã nguồn: Giúp tổ chức mã nguồn một cách logic, chẳng hạn như tách biệt mã tự sinh (auto-generated code) và mã do lập trình viên viết ra.
  • Hợp tác làm việc: Hỗ trợ làm việc nhóm khi nhiều lập trình viên cùng làm việc trên cùng một lớp nhưng trong các file khác nhau để tránh xung đột mã nguồn.

Cách sử dụng Partial Class

Để sử dụng partial class, bạn cần khai báo từ khóa partial trước từ khóa class trong mỗi file chứa một phần của định nghĩa lớp.

csharp Copy
// File: MyClass.Part1.cs
public partial class MyClass
{
    public void MethodA() { }
}

// File: MyClass.Part2.cs
public partial class MyClass
{
    public void MethodB() { }
}

Trong ví dụ trên, MyClass được chia thành hai file, mỗi file chứa một phần của định nghĩa lớp. Khi biên dịch, cả hai phần sẽ được kết hợp lại và MyClass sẽ có cả MethodAMethodB.

Lưu ý khi sử dụng Partial Class

  • Tất cả các phần của partial class phải nằm trong cùng một namespace.
  • Các phần của partial class phải được biên dịch cùng một lúc để tạo ra một lớp hoàn chỉnh.
  • partial class không thay đổi bất kỳ hành vi nào của lớp - nó chỉ là một cách để tổ chức mã nguồn.

partial class là một công cụ hữu ích trong việc quản lý và tổ chức mã nguồn, đặc biệt trong các dự án lớn hoặc khi làm việc với mã tự sinh từ các công cụ như Windows Forms Designer hoặc Entity Framework.

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Sự khác nhau giữa static readonlyconst trong C# là gì?

senior

Điều gì xảy ra khi chúng ta Box hoặc Unbox các kiểu Nullable trong C#?

middle

Kiểu Anonymous trong C# là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào