0

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

我有两个派生自基类的类

class Base
{
  public int BaseProperty;
  ...
}

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

Class B: Base
{
public int Property_derived;
...
}

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

textbox1.text = objectA.Property_derived;

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

textbox1.text = objecttypedoesntmatter.Property_derived;

这样我应该能够对任何派生类使用相同的用户界面。非常感谢任何帮助。非常感谢

4

1 回答 1

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; } }
}
于 2013-04-14T15:45:33.707 回答