第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

協(xié)方差與反方差之差

協(xié)方差與反方差之差

慕容森 2019-07-04 12:55:18
協(xié)方差與反方差之差我很難理解協(xié)方差和反方差之間的區(qū)別。
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經(jīng)驗 獲得超6個贊

給出例子可能是最簡單的-這就是我記得它們的方式。

協(xié)方差

典型的例子:IEnumerable<out T>Func<out T>

您可以從IEnumerable<string>IEnumerable<object>,或Func<string>Func<object>..價值只會到來這些東西。

這是因為如果您只從API中提取值,并且它將返回特定的值(例如string),您可以將返回的值視為更一般的類型(如object).

反方差

典型的例子:IComparer<in T>Action<in T>

您可以從IComparer<object>IComparer<string>,或Action<object>Action<string>價值只會消失這些東西。

這一次它起作用了,因為如果api期望的是一些通用的東西(例如object)你可以給它一些更具體的東西(比如string).

更一般

如果你有一個接口IFoo<T>它可以是協(xié)變的T(即聲明為IFoo<out T>如果T僅用于接口中的輸出位置(例如返回類型)。它可以在T(即:IFoo<in T>)如果T僅用于輸入位置(例如參數(shù)類型)。

它可能會引起混淆,因為“輸出位置”并不像聽起來那么簡單-一個類型的參數(shù)。Action<T>仍然只使用T在輸出位置上Action<T>如果你明白我的意思。這是一個“輸出”,因為這些值可以從方法的實現(xiàn)中傳遞走向調用者的代碼,就像返回值一樣。這類事情通常不會出現(xiàn),幸運的是:)


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 602 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號