如何从抽象类访问继承类的属性

Sae*_*eid 4 c#

我正在使用其中有一个抽象类的代码,例如:

public abstract class AbstractClass
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

并且有从 AbstractClass 继承的类。根据来自继承类之一的用户输入创建一个对象。每个继承的类都有自己的属性:

class classOne : AbstractClass
    {
         ...
         public int A { get; set;}
         public int B { get; set;}
         public int C { get; set;}
         ...
    }


class classTwo : AbstractClass
    {
         ...
         public int D { get; set;}
         public int E { get; set;}
         ...
    }
Run Code Online (Sandbox Code Playgroud)

...假设我想在该代码中使用函数,并且我知道将返回哪种对象类型。由于程序的编写方式仅在程序运行时确定输出的类,因此如何修改输出对象的属性?

ohi*_*oug 5

如果你知道你将拥有什么具体类型,你总是可以转换你的对象:

var concreteObject = myObj as classOne;
Run Code Online (Sandbox Code Playgroud)

或者,如果您不知道您将拥有什么对象类型,您可以测试它然后进行强制转换:

if (myObj is classOne) {
    // Cast to classOne and use
} else if (myObj is classTwo) {
    // Cast to classTwo and use
}
Run Code Online (Sandbox Code Playgroud)

希望这有助于回答您的问题!