微軟提供了這樣一個委托:public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);這個委托有15+重載,在該委托中各參數前都有in,out等字樣,我自己照著寫了一個,把in,out等完全去掉,也能正常運行,上網了解了下,這是面向對象編程中的協變和逆變。。大概了解了下意思:協變是指需要父類做參數的時候,傳子類進去也可以,這個很好理解,方便了我們編碼,而逆變是說需要子類的時候,傳個父類進去也可以,這就有點不理解了,在什么場合可以這樣使用?也可能是我解理的不對。想請高手們舉個例子講解一下,協變和逆變的使用場景。
- 2 回答
- 0 關注
- 747 瀏覽
添加回答
舉報
0/150
提交
取消