什么时候在C#中有用的值类型/引用类型约束?

Oak*_*Oak 6 c# generics constraints

我正在寻找简单的示例来演示值类型/引用类型约束何时有用.

... where T : struct  // when is this useful?
... where T : class   // and what about this?
Run Code Online (Sandbox Code Playgroud)

我记得过去看过一些非常好的例子,但我找不到它们.

Al *_*epp 11

它允许你as在T 上使用运算符T:class.

它禁止你比较T和nullT是否T:struct.

请注意,如果省略,T:class则即使T是值类型,也可以将T与null进行比较.

[注意:我需要在正确之前编辑此帖子几次.至少我希望现在是正确的.]