我有一个界面:
interface IFoo<out T>
{
T Get();
}
还有一些实例,例如 IFoo<int> a
, IFoo<User> u
, IFoo<string> s
等等。有一个List<IFoo<object>>
用来收集它们。但是variance doesn't work for value types , 是否有适当的方法将它们放入列表中?
最佳答案
看起来你不需要这个列表的泛型,所以你可以让接口(interface)实现一个非泛型接口(interface):
interface IFoo<out T> : IFoo { }
这样,您的所有对象都实现了相同的接口(interface)。这可能不是一个坏主意,因为它们确实有一些共同点。现在你可以简单地使用 List<IFoo>
.
关于c# - 将 IFoo<T> 转换为 IFoo<object> 的一般方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7708887/