麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

C#協(xié)變和逆變

2019-11-17 02:26:19
字體:
來源:轉載
供稿:網(wǎng)友

C#協(xié)變和逆變

  我們知道在C#中,是可以將派生類的實例賦值給基類對象的。

  這是沒有什么問題的。下面我們做一些變動。

協(xié)變

  Dog類不是繼承Animal類么,為什么到這里就不能用了呢?

  原來我們都忽略了一點,在這段代碼中dogMarker和animalMarker變量的類型分別是Factory<Dog>和Factory<Animal>他們是沒有繼承關系的,也就是他們是同級別的。因此我們把dogMarker賦值給animalMarker的時候編譯器就報錯了。那么我們如果希望上面的代碼可以正常運行,那要怎么做呢?

  還記得在學習參數(shù)的時候有一個關鍵字么——out;如果類型參數(shù)只用作輸出值的話,那么他適用于任何泛型委托。

  這種結構化的委托特效之間的關系就叫做協(xié)變。

逆變

同樣先來看一段代碼

  這次大家知道,報錯肯定是類型不同當然不能賦值了,仔細看異常提示,要怎么實現(xiàn)“逆變”呢?其實只需要一個簡單的關鍵字(in)就能解決了

這種在期望傳入基類時允許傳入派生類對象的特性就是逆變了。

小結

對于協(xié)變與逆變只適用于引用類型,因為值類型沒法派生新的類型。

顯式變化使用in和out關鍵字只適用于委托和接口,類、結構和方法都不適用。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品一区视频 | 国产合集91合集久久日 | 国产精品久久久久久久久久久久午夜 | 国产精品成人一区二区三区吃奶 | 在线观看国产一区二区 | 99成人在线 | 国产一有一级毛片视频 | 色综合视频 | 久久精品中文字幕一区 | 一级在线观看 | 牛牛热这里只有精品 | 午夜在线观看视频网站 | 久久久一区二区三区视频 | 中文日韩在线 | 亚洲小视频在线播放 | 国产超碰人人做人人爱 | 日韩99| 色天使中文字幕 | va免费视频 | 欧美一区二区三区中文字幕 | 4p嗯啊巨肉寝室调教男男视频 | 成人男女啪啪免费观看网站四虎 | 久久影院免费观看 | 国产免费激情视频 | 日韩欧美激情视频 | 国产成人强伦免费视频网站 | 久久成人免费观看 | 欧美一级毛片大片免费播放 | 欧美日韩精品一区二区三区蜜桃 | 成年人视频在线免费播放 | 日韩精品a在线观看 | 欧美日韩中文字幕在线视频 | 综合97 | 中文字幕xxx | 草草影院地址 | 亚洲国产女同久久 | 石原莉奈日韩一区二区三区 | 国产精品久久久久久影视 | 亚洲射吧| 中文字幕观看 | 久久久青青草 |