Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从抽象类访问继承类的属性_C# - Fatal编程技术网

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

C# 如何从抽象类访问继承类的属性,c#,C#,我使用的代码中有一个抽象类,例如: public abstract class AbstractClass { ... } 还有从AbstractClass继承的类。根据一个继承类的用户输入创建一个对象。每个继承的类都有自己的属性: class classOne : AbstractClass { ... public int A { get; set;} public int B { get; set;}

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

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;}
         ...
    }
。。。
假设我想在代码中使用函数,我知道将返回哪种对象类型。由于程序是以仅在程序运行时确定输出类的方式编写的,因此如何修改输出对象的属性?

如果您在运行时知道某个实例属于特定类型,但无法向编译器证明,则可以强制转换它:

(SomeType)instance

如果您知道将使用哪种具体类型,则始终可以投射对象:

var concreteObject = myObj as classOne;
或者,如果您不知道将使用什么对象类型,可以测试它,然后强制转换:

if (myObj is classOne) {
    // Cast to classOne and use
} else if (myObj is classTwo) {
    // Cast to classTwo and use
}
希望这有助于回答您的问题