Generics trong C#

Giới thiệu về Generic

Generic cho phép bạn trì hoãn đặc tả của kiểu dữ liệu của các phần tử lập trình trong một lớp hoặc một phương thức, cho đến khi nó thực sự được sử dụng trong chương trình. Nói cách khác, generics cho phép bạn viết một lớp hoặc một phương thức có thể làm việc với bất kỳ kiểu dữ liệu nào.

Bạn viết các thông số kỹ thuật cho lớp hoặc phương pháp, với các tham số thay thế cho các kiểu dữ liệu. Khi trình biên dịch gặp một hàm tạo cho lớp hoặc một hàm gọi phương thức, nó tạo ra mã để xử lý kiểu dữ liệu cụ thể

Ví dụ GenericDemo sau đây sẽ minh hoạ cách tạo ra một lớp Generic và thao tác với lớp đó:

Các tính năng của Generic

Generics là một kỹ thuật làm giàu chương trình của bạn theo những cách sau:

  • Nó giúp bạn tối đa hóa việc tái sử dụng mã, loại an toàn và hiệu năng.
  • Bạn có thể tạo các lớp tập hợp chung. Thư viện lớp .NET Framework chứa một vài lớp thu thập thông tin mới trong không gian tên System.Collections.Generic. Bạn có thể sử dụng các lớp thu gom chung này thay vì các lớp thu thập trong không gian tên System.Collections.
  • Bạn có thể tạo các giao diện, lớp học, phương pháp, sự kiện và đại biểu chung của riêng mình.
  • Bạn có thể tạo các lớp chung chung bị ràng buộc để cho phép truy cập vào các phương thức trên các kiểu dữ liệu cụ thể.
  • Bạn có thể nhận được thông tin về các kiểu được sử dụng trong một kiểu dữ liệu chung khi chạy bằng phương pháp phản chiếu.

Phương thức Generic

Trong ví dụ trước, chúng ta đã sử dụng một lớp generic; chúng ta có thể khai báo một phương thức generic với tham số kiểu. Chương trình GenericMethoDemo sau đây sẽ minh hoạ khái niệm này:

Generic Delegate

Bạn có thể định nghĩa ra một delegate theo kiểu generic với tham số số kiểu. Cú pháp như sau:

delegate T NumberChanger<T>(T n);

Ví dụ GenericDelegateDemo sau đây sẽ minh hoạ cụ thể cách sử dụng khái niệm này:

Complete and Continue