我正在处理一个包含抽象类的代码,例如:
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/