读书人

传参继承如何实现

发布时间: 2013-01-25 15:55:29 作者: rapoo

传参继承怎么实现
本帖最后由 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种方式

读书人网 >C#

热点推荐