c#直接获取基本属性

时间:2016-09-09 03:38:51

标签: c# get attributes base

有一种简单的方法来获取另一个类继承的基类的属性吗?目前以下是我正在做的事情。

class baseClass
{
    public int A = 0;
    public string B = "Hello";
}
class ChildA : baseClass 
{

}
class ChildB : baseClass 
{

}

class CRunContainer 
{
    ChildA childA = new ChildA();
    ChildB childB = new ChildB();

    void getAttribute(object objChild) 
    {
        int iA = 0;
        string strB = "";
        if (objChild is ChildA)
        {
            iA = ((ChildA)objChild).A;
            strB = ((ChildA)objChild).B;
        }
        if (objChild is ChildB)
        {
            iA = ((ChildB)objChild).A;
            strB = ((ChildB)objChild).B;
        }
    }
}

在方法getAttribute中,有没有办法直接获取base属性而无需检查类型并转换对象? 像objChild.A这样的东西。 或者通过传递继承类的基类作为方法中的参数 像

这样的东西
void getAttribute(baseClass baseClass) 
    {
        int iA = baseClass.A;
        string strB = baseClass.B;           
    }

    void run() 
    {
        getAttribute(base.childA);
    }

1 个答案:

答案 0 :(得分:1)

只是做

 void getAttribute(baseClass child) 
 {
    int iA = child.A;
    string strB = child.B;
 }

然后你可以做

  getAttribute(childA)
  getAttribute(childB)