c#直接获取基属性

本文关键字:属性 获取 | 更新日期: 2023-09-27 18:06:29

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

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方法中,是否有一种方法可以直接获得基属性,而不需要检查类型和强制转换对象?比如objchild。a。或者通过将继承类的基类作为方法中的参数传递比如

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

c#直接获取基属性

just do

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

那么你可以做

  getAttribute(childA)
  getAttribute(childB)