C # Lớp từng phần và Phương pháp từng phần (Có ví dụ)

Trong bài này, chúng ta sẽ tìm hiểu về cách thức và lý do tại sao các phương thức một phần và một lớp được triển khai trong C #.

Có nhiều tình huống khi bạn có thể cần tách định nghĩa lớp, chẳng hạn như khi làm việc trên một dự án quy mô lớn, nhiều nhà phát triển và lập trình viên có thể cần làm việc trên cùng một lớp cùng một lúc. Trong trường hợp này, chúng ta có thể sử dụng một tính năng gọi là Lớp một phần .

Giới thiệu về Lớp một phần

Trong khi lập trình bằng C # (hoặc OOP), chúng ta có thể tách định nghĩa của một lớp thành hai hoặc nhiều tệp nguồn. Các tệp nguồn chứa một phần định nghĩa về lớp và tất cả các phần được kết hợp khi ứng dụng được biên dịch. Để tách định nghĩa lớp, chúng ta cần sử dụng partialtừ khóa.

Ví dụ 1:

Chúng tôi có một dự án được đặt tên là HeightWeightInfohiển thị chiều cao và cân nặng.

Chúng tôi có một tệp được đặt tên là File1.csvới một lớp một phần có tên là Bản ghi. Nó có hai biến số nguyên h & w và một phương thức / hàm tạo có tên là Bản ghi đang gán các giá trị của h & w.

 namespace HeightWeightInfo ( class File1 ( ) public partial class Record ( private int h; private int w; public Record(int h, int w) ( this.h = h; this.w = w; ) ) )

Đây là một tệp khác có tên là File2.cs với cùng một lớp Bản ghi, chỉ có phương thức PrintRecord. Phương thức này sẽ hiển thị các giá trị của h & w.

 namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )

Ở đây bây giờ chúng ta có thể thấy phương thức chính của dự án:

 namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )

Ở đây chúng ta có đối tượng của lớp Record là myRecord đang chuyển các giá trị tham số là 10 và 15 đến h và w tương ứng cho phương thức được định nghĩa trong File1.cs.

Phương thức PrintRecord được gọi bởi đối tượng myRecord được định nghĩa trong File2.cs.

Điều này cho thấy rằng partialtừ khóa giúp kết hợp tất cả các thuộc tính của một lớp được định nghĩa trong các tệp khác nhau để hoạt động như một lớp duy nhất.

Những nơi partialcó thể sử dụng lớp học:

  1. Trong khi làm việc trên một dự án lớn hơn với nhiều nhà phát triển, nó sẽ giúp các nhà phát triển làm việc trên cùng một lớp đồng thời.
  2. Các mã có thể được thêm vào hoặc sửa đổi vào lớp mà không cần tạo lại các tệp nguồn được tạo tự động bởi IDE (tức là Visual Studio).

Những điều cần nhớ về Lớp học một phần

Các partialtừ khóa xác định rằng các bộ phận khác của lớp có thể được định nghĩa trong namespace. Bắt buộc phải sử dụng từ khóa part nếu chúng ta đang cố tạo một lớp là một phần. Tất cả các phần của lớp phải nằm trong cùng một không gian tên và có sẵn tại thời điểm biên dịch để tạo thành kiểu cuối cùng. Tất cả các phần phải có cùng một công cụ sửa đổi quyền truy cập, tức là riêng tư, công khai, v.v.

  • Nếu bất kỳ phần nào được khai báo là trừu tượng, thì toàn bộ kiểu được coi là trừu tượng.
  • Nếu bất kỳ bộ phận nào được tuyên bố là niêm phong, thì toàn bộ loại được coi là niêm phong.
  • Nếu phần nào khai báo kiểu cơ sở, thì kiểu toàn bộ sẽ kế thừa lớp đó.
  • Mọi thành viên lớp được khai báo trong định nghĩa một phần đều có sẵn cho tất cả các phần khác.
  • Tất cả các phần của một lớp một phần phải nằm trong cùng một không gian tên.

** Lưu ý: Công cụ partialsửa đổi không có sẵn trên khai báo đại biểu hoặc liệt kê

Giới thiệu các phương pháp từng phần

Một lớp một phần có thể chứa một phương thức một phần. Một phần của lớp chứa chữ ký của phương thức. Một triển khai tùy chọn có thể được xác định trong cùng một phần hoặc một phần khác. Nếu việc triển khai không được cung cấp, thì phương thức và tất cả các lệnh gọi sẽ bị xóa tại thời điểm biên dịch.

Ví dụ 2:

Hãy lấy một ví dụ như một lớp từng phần Carđược định nghĩa trong file1.csđó có ba phương thức InitializeCar (), BuildRim () và BuildWheels (). Trong số các phương thức đó, InitializeCar được định nghĩa là partial.

 public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )

Và chúng tôi có một tệp khác được đặt tên là tệp file2.cscó hai phương thức BuildEngine và InitializeCar. Phương thức InitializeCar là phương thức từng phần cũng được định nghĩa trong file1.cs.

 public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )

Khai báo một phần phương thức bao gồm hai phần:

  1. Định nghĩa như trong file1.cs.
  2. Việc thực hiện như trong file2.cs.

Chúng có thể nằm trong các phần riêng biệt của lớp một phần, hoặc trong cùng một phần.

Những điều cần nhớ về Phương pháp từng phần

  • partial từ khóa.
  • loại trả lại void .
  • ngầm hiểu private.
  • và không thể được virtual.

thú vị bài viết...