如何让一个控件在c#中显示任何派生类的属性?

Ava*_*ais 0 c# inheritance

这可能是一个简单的问题,但我正在努力解决它.

我有两个派生自基类的类

class Base
{
  public int BaseProperty;
  ...
}

class A: Base
{
public int Property_derived;
...
}

Class B: Base
{
public int Property_derived;
...
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个UI表单,它有一个文本框,应该显示派生类的属性(我保证所有派生类的属性的数量和数据类型将是相同的)我做了类似的事情:

textbox1.text = objectA.Property_derived;
Run Code Online (Sandbox Code Playgroud)

如何更改它以使其更通用,如:

textbox1.text = objecttypedoesntmatter.Property_derived;
Run Code Online (Sandbox Code Playgroud)

这样我就可以为任何派生类使用相同的用户界面.任何帮助非常感谢.非常感谢

Avn*_*tan 5

您需要做的是在基类中定义Property_derived,从而将其作为所有派生类的共享契约的一部分.多态性是继承的属性,它将调用派生的重写属性.但请注意,这适用于属性,而不是字段:

class Base
{
   public virtual int MyProperty {get { return 1;} }   
}

class A: Base
{
   public override int MyProperty { get { return 5; } }
}

class B: Base
{
   public override int MyProperty { get { retun 7; } }
}
Run Code Online (Sandbox Code Playgroud)