这可能是一个简单的问题,但我正在努力解决它.
我有两个派生自基类的类
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)
这样我就可以为任何派生类使用相同的用户界面.任何帮助非常感谢.非常感谢
您需要做的是在基类中定义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)