強類(lèi)型和弱類(lèi)型指的是兩個(gè)具有直接或者間接繼承關(guān)系的兩個(gè)類(lèi)。如果一個(gè)類(lèi)是另一個(gè)類(lèi)的直接或者間接基類(lèi),那么它為弱類(lèi)型,直接或者間接子類(lèi)為強類(lèi)型。后續的介紹中會(huì )用到的兩個(gè)類(lèi)Foo和Bar先定義在這里。Bar繼承自Foo。Foo是弱類(lèi)型,而B(niǎo)ar則是強類(lèi)型。
有了強類(lèi)型和弱類(lèi)型的概念,我們就可以這樣的定義協(xié)變和逆變:如果類(lèi)型TBar是基于強類(lèi)型Bar的類(lèi)型,而類(lèi)型TFoo是基于弱類(lèi)型Foo的類(lèi)型,協(xié)變就是將TBar類(lèi)型的實(shí)例賦值給TFoo類(lèi)型的變量,而逆變則是將TFoo類(lèi)型的實(shí)例賦值給TBar類(lèi)型的變量。
委托中的協(xié)變與逆變的使用
協(xié)變和逆變主要體現在兩個(gè)地方:接口和委托,先來(lái)看看在委托中如何使用協(xié)變和逆變?,F在我們定義了如下一個(gè)表示無(wú)參函數的泛型委托Function,類(lèi)型參數為函數返回值的類(lèi)型。泛型參數之前添加了一個(gè)out關(guān)鍵字表示T是一個(gè)協(xié)變變體。那么在使用過(guò)程中,基于強類(lèi)型的委托Fucntion實(shí)例就可以賦值給基于弱類(lèi)型的委托Fucntion變量。
Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號 google網(wǎng)站地圖 百度網(wǎng)站地圖 網(wǎng)站地圖
公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話(huà):0411-39943997 QQ:2088827823 37482752
法律聲明:未經(jīng)許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明