Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Covariance và Contravariance trong C#


Để xử lý các lớp hiệu quả, hãy sử dụng khái niệm covariance và contravariance.

Xét các lớp sau. One là lớp cơ sở của Two, trong khi Two là lớp cơ sở của Three.

class One { } 
class Two : One { } 
class Three : Two { }

Lớp cơ sở có thể giữ tham chiếu đến lớp dẫn xuất, nhưng ngược lại thì không. Với Covariance, bạn có thể truyền kiểu dẫn xuất nơi kiểu cơ sở được mong đợi. Covariance có thể được sử dụng trên mảng, giao diện, delegate, v.v. trong C#.

Contravariance dành cho tham số. Một phương thức với tham số kiểu lớp cơ sở được phép gán cho delegate mong đợi tham số kiểu lớp dẫn xuất với Contravariance.