我正试图找到使用通用接口的通用列表作为变量的正确方式。
这里有一个示例。它可能不是最好的,但希望你能理解:
public interface IPrimitive<T>
{
T Value { get; }
}
然后在另一个类中,我希望能够声明一个变量来保存实现了任意T
的IPrimitive<T>
接口的对象列表。
// I know this line will not compile because I do not define T
List<IPrimitive<T>> primitives = new List<IPrimitives<T>>;
primitives.Add(new Star()); // Assuming Star implements IPrimitive<X>
primitives.Add(new Sun()); // Assuming Sun implements IPrimitive<Y>
请注意,在“IPrimitive”中的“T”可能对于列表中的每个条目都不同。
如何设置这样的关系?还有其他方法吗?