C# 类约束JAVA到C的实现

C# 类约束JAVA到C的实现,c#,java,.net,c#-4.0,C#,Java,.net,C# 4.0,Java实现: 我有一个抽象类: public abstract class Base<T> {} 以及导出的: public class MyClass<W extends Base> {} //Compiles and works just fine 注意:在JAVA中,当将Base声明为约束时,我不需要向Base添加泛型类型 .Net实现 public class MyClass<W> where W : Base //Doesn't compi

Java实现:

我有一个抽象类:

public abstract class Base<T> {}
以及导出的:

public class MyClass<W extends Base> {}  //Compiles and works just fine
注意:在JAVA中,当将Base声明为约束时,我不需要向Base添加泛型类型

.Net实现

public class MyClass<W> where W : Base  //Doesn't compile
public class MyClass<W> where W : Base<T> //Doesn't compile - (what is T ?)
我需要能够将泛型类声明为约束,而无需像JAVA中那样指定泛型类型 在.Net中可以这样做吗?

您需要在泛型类型参数列表中包括T:

public class MyClass<W, T> where W : Base<T>
用法:

您需要在泛型类型参数列表中包括T:

public class MyClass<W, T> where W : Base<T>
用法:


如果MyClassin,java版本不是更好吗如果MyClassin,java版本不是更好吗?如何使用它,新的MyClass?如何使用它,新的MyClass?
public abstract class Base<T> { }

public class ClassExtendingBase : Base<string> { }