【发布时间】:2013-12-18 14:17:33
【问题描述】:
IData
【问题讨论】:
标签: c#
IData
【问题讨论】:
标签: c#
考虑,
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>,因为它是一个协变接口,而Banana 是Fruit 的一种类型,
接受IData<Fruit> 的函数将只能接受IData<Fruit>。
【讨论】: