我有一个界面:
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,是否有正确的方法将它们列入清单?
答案 0 :(得分:4)
此列表看起来不需要泛型,因此您可以让接口实现非泛型接口:
interface IFoo<out T> : IFoo { }
这样,所有对象都实现了相同的接口。这可能不是一个坏主意,因为它们确实有一些共同之处。现在您只需使用List<IFoo>
。