传参继承怎么实现
本帖最后由 grayhoundd 于 2013-01-15 15:21:05 编辑 class ConfigA{}
class ConfigB:ConfigA{}
class A{ virtualvoid test(ConfigA configA){} }
在定义如下类时,方法名是一致的,但是参数是一个子类参数,如何让B实例化使用时,只可见ConifigB的方法
class B:A{ override void test(ConfigB configB){} }
B b= new ();
b.test( configB ); //不可见configA的方法
[解决办法]
public class ConfigA { }
public class ConfigB : ConfigA { }
public class A<T> where T : ConfigA
{
protected void _test1(ConfigA configA) { }
public void test2(T config) { }
public void test3<T1>(T1 config) where T1 : ConfigA
{ }
}
public class B<T> : A<T> where T : ConfigB
{
public void test1(ConfigB configB)
{}
public void test3<T1>(T1 config) where T1 : ConfigB
{}
}
我抛砖引玉吧,3种方式