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

标签 c#

我正在处理一个包含抽象类的代码,例如:

public abstract class AbstractClass
{
   ...
}

还有继承自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;}
         ...
    }

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

最佳答案

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

var concreteObject = myObj as classOne;

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

if (myObj is classOne) {
    // Cast to classOne and use
} else if (myObj is classTwo) {
    // Cast to classTwo and use
}

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

关于c# - 如何从抽象类访问继承类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34485797/

相关文章:

c# - 我可以在类库中向 AppDomain.CurrentDomain.UnhandledException 添加处理程序吗

c# - vstest.console.exe 忽略 app.config

c# - 当文本填满框时,强制文本 block 在最右侧显示文本(不在左侧显示文本)

c# - 使用 EF 和 LINQ 减少访问数据库的次数

c# - C# 和 VB.NET 中的接口(interface)实现

c# - 在没有管理员权限的情况下安装 MSBuild 15(Microsoft Build 工具)?

c# - 开启一个真表达式 c#

c# - 如何从 USB HID 设备读取输入?

c# - Web API 中的身份验证

c# - 使用 Floyd-Warshall 算法寻找迷宫