1. 程式人生 > >C#普通泛型介面、協變介面、逆變介面例項

C#普通泛型介面、協變介面、逆變介面例項

本文部分說明來自書籍和網摘。介面成員例項化之後該介面成員的“返回值型別”和“引數型別”不能改變的介面變數,稱之為不變數。協變和逆變正是建立在“不變”的基礎之上的。

協變保護( 協變數的型別相容是從小到大的“拓展性”相容。)介面成員“輸出”的相容性(允許隱式轉換)。

逆變則逆轉( 逆變數的型別相容是從大到小的“縮小性”相容。)介面成員“輸入”的相容性(禁止隱式轉換)。

舉例:協變Dog is a animal;逆變Animal is dog.

話不多說,下面一起來看程式碼例項: