关于一般Where T
本文关键字:Where 于一般 | 更新日期: 2023-09-27 17:58:25
void LoadParameters<T, TValue>(TValue strategy)
where T : Parameters
看到这样的代码。如果没有where语句,程序还能正常工作吗?
如果在不使用where语句的情况下编译,它将正常工作。然而,很可能程序员并没有简单地把它放在那里没有理由。如果删除它,它很可能无法编译,因此无法工作。
where
子句被称为"泛型类型约束"。通常T
可以是任何类型,在编写泛型代码时必须牢记这一点。通过将T
约束为、继承或实现特定类型,您可以在泛型代码中引用该类型的成员,因为编译器可以确保使用的任何对象都是该类型。您也可以使用class
、struct
或new
作为泛型类型约束,强制T
分别为引用类型、值类型或具有无参数构造函数。