Others
Equals và '=='
Đặc điểm | Toán tử | Phương thức |
|---|---|---|
Loại so sánh mặc định | Kiểu tham chiếu (class): mặc định so sánh tham chiếu (trừ khi kiểu đó overload
| Kiểu tham chiếu (class): mặc định là tham chiếu như |
Ghi đè / tuỳ biến | Có thể overload (không phải override) bằng cách khai báo | Có thể override (virtual method Với generics/hiệu năng, nên triển khai |
Tính linh hoạt | Ít linh hoạt hơn (chỉ 1 toán tử; phải cẩn thận tương thích với | Linh hoạt hơn: có thể override/triển khai |
Tốc độ | Không có quy tắc “nhanh hơn” nói chung. Với | Tương tự: phụ thuộc kiểu cụ thể và triển khai |
Sử dụng với
| An toàn (không ném NRE); | Gọi instance |
Generic và Non-Generic
Đặc điểm | Non-generic | Generic |
|---|---|---|
Khái niệm | Là kiểu dữ liệu truyền thống. Không khai báo cụ thể khi định nghĩa class, method, interface. Kiểu dữ liệu thực tế được xác định khi sử dụng. | Là kiểu dữ liệu được tham số hoá bởi một hoặc nhiều kiểu khác nhau. Cho phép khai báo class, method, interface với kiểu cụ thể. Kiểu này sẽ được định nghĩa và sử dụng xuyên suốt. |
Ưu điểm | Đơn giản, dễ hiểu Hiệu quả cao hơn với các kiểu dữ liệu nguyên thuỷ | Tăng khả năng tái sử dụng code Đảm bảo an toàn dữ liệu vào và ra khi sử dụng Tốt hơn do được tối ưu hoá cho kiểu dữ liệu cụ thể |
Nhược điểm | Kém linh hoạt, khó tái sử dụng. Thiếu an toàn do có thể sử dụng sai kiểu dữ liệu | Phức tạp hơn so với non-generic. Có thể ảnh hưởng hiệu suất với những kiểu dữ liệu phức tạp. |
Sử dụng | Khi cần code đơn giản dễ hiểu, không yêu cầu tái sử dụng cao, không yêu cầu an toàn dữ liệu cao. | Khi cần code có khả năng tái sử dụng cao và yêu cầu tính an toàn dữ liệu cao. |
Delegate và Event
Delegate | Event |
|---|---|
- Là một tham chiếu đại diện cho phương thức. - Có thể gọi trực tiếp từ bất kỳ đâu có quyền truy cập. - Có thể gọi trực tiếp mà không có cơ chế bảo vệ nào nên có thể dẫn đến lỗi. - Ưu tiên tính linh hoạt. | - Là thành phần của lớp sử dụng delegate để quản lý danh sách các phương thức. - Chỉ có thể kích hoạt bên trong lớp mà nó được khai báo. - Có cơ chế bảo vệ ngăn chặn gọi từ bên ngoài. Chỉ cho phép đăng ký bên trong class thông quan += hoặc huỷ đăng ký qua -= - Ưu tiên an toàn và kiểm soát. |