- 类型参数必须是引用类型:
public class MyClasswhere T : class { // 类型参数T必须是引用类型 }
- 类型参数必须是值类型:
public class MyClasswhere T : struct { // 类型参数T必须是值类型 }
- 类型参数必须实现指定接口:
public class MyClasswhere T : IComparable { // 类型参数T必须实现IComparable接口 }
- 类型参数必须为指定基类或接口的派生类:
public class MyClasswhere T : MyBaseClass { // 类型参数T必须为MyBaseClass类或其派生类 }
- 类型参数必须有无参构造函数:
public class MyClasswhere T : new() { // 类型参数T必须有无参构造函数 }
这些是泛型约束的最常见用途,它们可以帮助我们在编写泛型类或方法时限制类型参数的类型,以提高程序的类型安全性和可读性。