日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#中关于协变性和逆变性(又叫抗变)帮助理解

發布時間:2023/12/4 C# 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#中关于协变性和逆变性(又叫抗变)帮助理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天回憶了之前看的《深入理解C#》這本書中的泛型章節,其中對泛型的可變性的理解。泛型可變性分兩種:協變和逆變。逆變也又稱為抗變。

 怎么理解這兩個名詞的意思:

  ①:協變即為在泛型接口類型中使用out標識的類型參數。協變的字面意思是“與變化的方向相同”②逆變那就是用in來標識的泛型接口類型的類型參數。逆變的字面意思是“與變化的方向相反”

  需要注意的是無論是協變還是逆變也只能在泛型接口中來使用。

  先來舉個基本的例子,來加強你對可變性的理解。在C#中有隱式類型轉換,比如:


string?str =?"nibian";object?str1 = str;Console.WriteLine(str1);

  

  大家都知道string類型是object類型的子類型,即string->object為子->父;從子類型到父類型的轉換是隱式類型轉換。

舉個例子:


interface?IDemo<out?T>???{???????T Method(string?str);???}???class?One : IDemo<string>???{???????public?string?Method(string?str)???????{???????????return?str;???????}???}???class?Two : IDemo<object>???{???????public?object?Method(string?str)???????{???????????return?str;???????}???}???class?Program???{???????static?void?Main(string[] args)???????{???????????IDemo<string> one =?new?One();???????????IDemo<object> two;???????????two = one;???????????Console.WriteLine(two.Method("2222"));???????}???}

  

因為string是object類型的子類,在這里IDemo<string>和IDemo<object>類型之間也存在著類型轉換的,從IDemo<string>向IDemo<object>進行的轉換可以看成是子類型向父類型的隱式轉換,它的這個用法就是協變。(這里必須要用out)

相反的我們在來看一下有關逆變的代碼:


interface?IDemo<in?T>???{???????string?Method(T str);???}???class?One : IDemo<string>???{???????public?string?Method(string?str)???????{???????????return?str;???????}???}???class?Two : IDemo<object>???{???????public?string?Method(object?str)???????{???????????return?str.ToString();???????}???}???class?Program???{???????static?void?Main(string[] args)???????{???????????IDemo<object> two =?new?Two();???????????IDemo<string> one;???????????one = two;???????????Console.WriteLine(one.Method("2222"));???????}???}

  同樣的從IDemo<object>類型向IDemo<string>類型的轉換,但是在這里我們卻將父類型隱式轉換為子類型的用法叫逆變。(這里必須要用in)

總結:協變和逆變就是在泛型接口類型將類型參數作為輸入和輸出的情況下,對類型間進行隱式轉換的規律。

原文地址:?https://www.cnblogs.com/yubabuneng/p/9506037.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結

以上是生活随笔為你收集整理的c#中关于协变性和逆变性(又叫抗变)帮助理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本少妇性生活 | 成年人视频在线看 | 国产日韩网站 | 天天色天天 | 国产av 一区二区三区 | 一级片视频在线观看 | 国产蜜臀av一区二区 | 精品久久久久久久久久久久久久久久久 | 亚洲AV无码国产成人久久 | 精品不卡在线 | a黄色片 | 国产免费av片在线 | 性日韩 | 一级少妇精品久久久久久久 | 日韩精品手机在线 | 亚洲视屏 | 欧美一级乱黄 | 免费观看成人毛片 | 色一情一区二 | 人妻巨大乳hd免费看 | 亚洲av综合色区无码一区爱av | h片在线播放 | 国产午夜性春猛交ⅹxxx | 日日射天天操 | 丰满少妇毛片 | 国产主播在线播放 | av日韩免费 | 精品久久中文字幕 | 亚洲av鲁丝一区二区三区 | 国产激情久久 | 久久亚洲成人av | 欧美日韩国产图片 | 中文字幕日本一区 | 影音先锋在线视频观看 | 一本加勒比hezyo黑人 | 青青在线观看视频 | 久色视频在线 | 精品人妻一区二区三区四区 | 人人搞人人爱 | 亚洲人高潮女人毛茸茸 | 日本a级免费 | 日本裸体xx少妇18在线 | 国产 中文 字幕 日韩 在线 | 富二代成人短视频 | 国产又粗又深又猛又爽又在线观看 | 欧美精品在线观看 | 99亚洲精品| 欧美贵妇videos办公室 | 成人av一区二区三区在线观看 | 91麻豆精品国产91久久久更新时间 | 日韩精品影院 | 秋霞一级全黄大片 | 国产精品va | 亚洲短视频 | 黄色av片三级三级三级免费看 | 国产精品第2页 | 草草草在线视频 | 成人黄色三级视频 | 无码人妻aⅴ一区二区三区 国产高清一区二区三区四区 | 四虎成人在线 | 亚洲1级片 | 亚洲不卡在线播放 | 不卡精品 | 日韩精品一区二区三区电影 | 黑人玩弄人妻一区二区绿帽子 | 中文字幕中文在线 | 亚色网站| 国产在线1区 | 超碰97干 | 国产极品91 | 露脸啪啪清纯大学生美女 | 一卡二卡久久 | 99riav国产精品视频 | 国产又爽又黄的视频 | 欧美视频在线一区 | 在线成人av网站 | 欧美日韩国产精品综合 | 国产免费无遮挡吸奶头视频 | 日韩电影三级 | 黄色一级一片 | 色噜噜狠狠一区二区三区牛牛影视 | 欧美性69 | 黄片毛片在线免费观看 | jizz视频| 久久久久人妻一区 | 欧美精品一区二区三区久久久 | 日韩 欧美 亚洲 国产 | 91精品国产综合久久久久久久 | 91超薄肉色丝袜交足高跟凉鞋 | 开心激情深爱 | 椎名空在线 | 日韩精品一二三四 | 国产熟女一区二区丰满 | 在线观看视频你懂得 | 琪琪秋霞午夜被窝电影网 | 国产精品日韩一区 | 久久免费看少妇高潮 | 欧美国产第一页 | 国产3p露脸普通话对白 |