定义泛型接口
前面介绍了几个泛型接口,它们都位于System.Collections.Generics名称空间中,例如,上一个示例中使用的IEnumerable<T>
。定义泛型接口与定义泛型类所用的技术相同,例如:
interface MyFarmingInterface<T>
where T : Animal
{
bool AttemptToBreed(T animal1, T animal2);
T OldestInHead{ get; }
}
其中,泛型参数T用作AttemptToBreed()的两个实参的类型和OldestInHead属性的类型。
其继承规则与类相同。如果继承了一个基泛型接口,就必须遵循这些规则,例如保持基接口泛型类型参数的约束。