在C#中,您可以使用多个约束来限制泛型类型的参数。以下是如何为泛型类型指定多个约束的方法:
where
关键字: 在泛型类型定义中,使用 where
关键字后跟泛型参数名称和约束类型。您可以添加多个 where
子句来指定多个约束。
例如,以下代码定义了一个名为 MyClass
的泛型类型,其中 T
类型参数必须是 class
类型且实现了 IComparable<T>
和 IDisposable
接口:
public class MyClass<T> where T : class, IComparable<T>, IDisposable
{
// 类型定义
}
在单个 where
子句中,您可以使用逗号分隔多个约束。例如,以下代码定义了一个名为 MyClass
的泛型类型,其中 T
类型参数必须是 class
类型且实现了 IComparable<T>
和 IDisposable
接口:
public class MyClass<T> where T : class, IComparable<T>, IDisposable
{
// 类型定义
}
这与上面的示例相同,但使用了单个 where
子句。
请注意,您不能在同一个约束子句中指定基类和接口。因此,如果您需要指定基类和接口约束,请使用多个 where
子句。例如:
public class MyClass<T> where T : class where T : IComparable<T>, IDisposable
{
// 类型定义
}
这将导致编译错误,因为您不能在同一个约束子句中指定基类和接口。正确的方法是使用两个 where
子句,如上面的示例所示。
领取专属 10元无门槛券
手把手带您无忧上云