我从 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/