繁体   English   中英

如何在父类中获取子级属性?

[英]How to get child property inside parent class?

请问我下一步该怎么做? 如何使用Lambda做到这一点? 如果此方法不知道委托对象的类型,是否可以委托某些对象实例并使用其属性和方法?

class class_a {
    public string getChildData<T> (T dynamicInstance) {
        return dynamicInstance.prop;
    }
}

class class_b : a {
    public string prop = "prop_b";
}

class class_c : a {
    public string prop = "prop_c";
}

var inst_b = new b ();
var inst_c = new c ();
b.getChildData(b);
c.getChildData(c);

目的 :在父类中获得子级属性?

更新 :使用反射-http : //forums.asp.net/t/1608839.aspx

谢谢阿特姆

使用抽象/虚拟属性而不是字段:

abstract class ClassA
{
    public abstract string MyProperty
    {
        get;
    }

    public void DoIt()
    {
        Console.WriteLine(this.MyProperty);
    }
}

class ClassB : ClassA
{
    public override string MyProperty
    {
        get { return "prop_b"; }
    }
}

class ClassC : ClassA
{
    public override string MyProperty
    {
        get { return "prop_c"; }
    }
}

var instB = new ClassB();
var instC = new ClassC();
instB.DoIt();
instC.DoIt();

请参阅: 继承(C#编程指南)
请参阅: 覆盖(C#参考)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM