C#泛型无效的原因

标签 c# generics

我从 Jon Skeet 的“C# in depth”中获取了这个。

他提到以下是有效的

(1) class Sample<T> where T:class,Stream

且以下内容无效

(2) class Sample<T> where T:Stream,class

第二个无效的原因是什么?

最佳答案

我认为 type constraint按值 (struct) 或引用 (class) 必须放在第一位,就像 new 约束必须放在最后,如果它们不止一个。

约束本身也没有多大意义,Stream 是一个类,T 将是一个引用类型 (class)仅受该约束,所以基本上它是多余的。

关于C#泛型无效的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1733583/

相关文章:

c# - MVC 5 使用 actionlink 将模型从 View 传递到 Controller

function - Scala通用函数值(匿名函数)-缺少参数类型(错误)

java - Google 先决条件非法参数异常

java - 通配符与通用方法

c# - 通过强制转换为 uint 而不是检查负值来执行范围检查是否更有效?

c# - 在 Windows 10 (1803) 上,如果 WPF 透明窗口覆盖在所有应用程序上,所有应用程序都会失去触摸或手写笔

c# - AngularJS 与 ASP.NET MVC 混淆

c# - 无法重载具有类型约束的泛型方法

c# - 从 DbContext 检索 DbSet<T> 的通用方法

c# - Task.Run 和 UI 进度更新