关于一般Where T

本文关键字:Where 于一般 | 更新日期: 2023-09-27 17:58:25

void LoadParameters<T, TValue>(TValue strategy)
        where T : Parameters

看到这样的代码。如果没有where语句,程序还能正常工作吗?

关于一般Where T

如果在不使用where语句的情况下编译,它将正常工作。然而,很可能程序员并没有简单地把它放在那里没有理由。如果删除它,它很可能无法编译,因此无法工作。

where子句被称为"泛型类型约束"。通常T可以是任何类型,在编写泛型代码时必须牢记这一点。通过将T约束为、继承或实现特定类型,您可以在泛型代码中引用该类型的成员,因为编译器可以确保使用的任何对象都是该类型。您也可以使用classstructnew作为泛型类型约束,强制T分别为引用类型、值类型或具有无参数构造函数。