C# 关于泛型Where T void LoadParameters(TValue策略) 式中T:参数

C# 关于泛型Where T void LoadParameters(TValue策略) 式中T:参数,c#,where,C#,Where,看到这样的代码。程序在没有where语句的情况下是否仍能正常工作?如果它在编译时没有where语句,它将正常工作。然而,很有可能编码人员并不是无缘无故地把它放在那里。如果删除它,它可能无法编译,因此无法工作。如果它在编译时没有where语句,它将正常工作。然而,很有可能编码人员并不是无缘无故地把它放在那里。如果删除它,它很可能无法编译,因此无法工作。将where子句称为“泛型类型约束”。通常T可以是任何类型,在编写泛型代码时必须牢记这一点。通过将T约束为、继承或实现特定类型,您可以在泛型代码中引

看到这样的代码。程序在没有where语句的情况下是否仍能正常工作?

如果它在编译时没有where语句,它将正常工作。然而,很有可能编码人员并不是无缘无故地把它放在那里。如果删除它,它可能无法编译,因此无法工作。

如果它在编译时没有where语句,它将正常工作。然而,很有可能编码人员并不是无缘无故地把它放在那里。如果删除它,它很可能无法编译,因此无法工作。

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

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

谢谢。也许程序员放在那里是为了确保从他的类继承的其他类不会传递错误的类型?如果它在编译时没有
where
,那么它就不是错误的类型。删除它并编译,您将得到编译器期望
T
参数类型的错误。谢谢。也许程序员放在那里是为了确保从他的类继承的其他类不会传递错误的类型?如果它在编译时没有
where
,那么它就不是错误的类型。删除它并编译,您将得到编译器期望
T
类型为
Parameters
的错误。代码期望
T
类型为
Parameters
。如果该方法正在使用该类型的任何特定成员,则如果传递了错误的类型,则可能会失败。
参数
不是真正的参数。它们是类/接口/
T
应继承。该代码应为
T
类型的
参数
。如果该方法正在使用该类型的任何特定成员,则如果传递了错误的类型,则可能会失败。
参数
不是真正的参数。它们是类/接口/
T
应该继承。
void LoadParameters<T, TValue>(TValue strategy)
        where T : Parameters