.Net--協變、逆變

一、說明:協變和逆變只能出如今接口和委託中。
ide

        協變經過out來修飾,逆變經過in來修飾
blog

        對引用類型有效,對值類型無效
接口

二、須要解決的問題:it

    image.png

三、解決方案:class

     IEnumerable<Parent> _parents = new List<Child>();泛型

    查看 IEnumerable的定義發現List

image.png

在泛型參數的前面添加了out參數。引用

四、補充:im

    out協變:被修飾的參數只能出如今返回值的位置。
db

    in逆變:被修飾的參數只能出如今參數的位置。

五、逆變的事例:

    image.png

六、本身寫一個逆變和協變的事例:

    

    image.png

相關文章
相關標籤/搜索