下面是一个示例:
public class B<T> {}
public class D : B<int> {}
public class A<T, S> where T : B<S> {}
public class C : A<D, int> {}
public class Test1
{
public class test1
{
A<D, int> t = new C();
}
}我想要做的是声明C类,只说:C : A<D>。为什么我需要重复int?因为int已经是D的一部分。
test1方法也是如此。我想写:A<D> t = new C();
我怎样才能做到这一点呢?
更新
这里使用更真实的类名:
public class MyModel<T> { }
public class MyTrueModel : MyModel<int> { }
public class MyManager<T,S> where T : MyModel<S> { }
public class MyTrueManager : MyManager<MyTrueModel, int> { }
public class Test1
{
public class test1
{
MyManager<MyTrueModel, int> t = new MyManager<MyTrueModel, int>();
}
}所有的问题都来自于MyManager类。如果我能做这样的事情:MyManager<T> where T : MyModel,那就太好了。
发布于 2009-12-09 09:02:06
声明A为:
public class A<T> where T : B<S>应该可以工作,但我身上没有编译器,所以我不能肯定。
https://stackoverflow.com/questions/1870962
复制相似问题