C# 带有泛型的约束语法,也是从类派生的

C# 带有泛型的约束语法,也是从类派生的,c#,.net,generics,constraints,derived-class,C#,.net,Generics,Constraints,Derived Class,我遇到了以下问题:我有一个泛型类,带有一个约束,它派生自非泛型接口: public abstract class DrilldownBase<W> where W : class, IDrilldown 公共抽象类DrilldownBase,其中W:class,IDrilldown 这段代码是不正确的,因为它认为IDrilldown是一个约束,而它不是。我想要的是类DrilldownBase从IDrilldown继承。我错过了什么 谢谢。那就不要把它作为约束的一部分 约束应位于继

我遇到了以下问题:我有一个泛型类,带有一个约束,它派生自非泛型接口:

public abstract class DrilldownBase<W> where W : class, IDrilldown
公共抽象类DrilldownBase,其中W:class,IDrilldown
这段代码是不正确的,因为它认为IDrilldown是一个约束,而它不是。我想要的是类DrilldownBase从IDrilldown继承。我错过了什么


谢谢。

那就不要把它作为约束的一部分

约束应位于继承声明之后:

public abstract class DrilldownBase<W> : IDrilldown where W : class, 
公共抽象类DrilldownBase:IDrilldown其中W:class,

谢谢。这种语法对我来说似乎很奇怪,事实上IDrilldown和where is different之间没有分隔符。当最小等待期结束时,我会将您标记为答案。@greggorob64好的风格是将where子句放在下一行,谢谢。我的母语实际上是VC++.net。我总是在发帖前翻译我的代码问题,以便获得更多的曝光。长话短说,在VC++中,您必须将泛型约束放在函数之前。@greggorob64-我知道您的痛苦。。。每当我转换到一种与我现在的主语不同的语言时,我就会遇到这种情况。很高兴我能帮忙。