首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

传参继承如何实现

2013-01-25 
传参继承怎么实现本帖最后由 grayhoundd 于 2013-01-15 15:21:05 编辑class ConfigA{}class ConfigB:Confi

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

热点排行