A general way to convert IFoo<T> to IFoo<object>

本文关键字:lt gt IFoo to general object way convert | 更新日期: 2023-09-27 18:10:53

有一个接口:

interface IFoo<out T> 
{
   T Get();
}

IFoo<int> aIFoo<User> uIFoo<string> s等实例。有一个List<IFoo<object>>用来收集它们。但是方差对值类型不起作用,有没有一种合适的方法把它们放在列表中?

A general way to convert IFoo<T> to IFoo<object>

这个列表看起来不需要泛型,所以你可以让接口实现一个非泛型接口:

interface IFoo<out T> : IFoo { }

这样,所有的对象都实现了相同的接口。这可能不是一个坏主意,因为它们确实有一些共同点。现在您可以简单地使用List<IFoo> .