<分区>
IData< out T> 和 IData< T> 有什么区别?
标签 c#
<分区>
IData< out T> 和 IData< T> 有什么区别?
最佳答案
考虑一下,
class Fruit {}
class Banana : Fruit {}
interface ICovariantData<out T> {}
interface IData<T> {}
和函数,
void Peel(IData<Fruit> fruitData) { }
void Peel(ICovariantData<Fruit> fruitData) { }
接受ICovariantData<Fruit>
的函数将能够接受 ICovariantData<Fruit>
或 ICovariantData<Bananna>
因为它是协变接口(interface)并且 Banana
是 Fruit
的一种,
接受IData<Fruit>
的函数将只能接受 IData<Fruit>
.
关于c# - IData<out T> 和 IData<T> 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20660572/