【发布时间】:2008-11-05 22:03:57
【问题描述】:
只是想知道是否有任何方法可以做到以下几点:
public Interface IDataField
{
object GetValue();
}
public Interface IComplexDataField : IDataField
{
object GetDefaultValue();
}
public class MyBase
{
private IDataField _DataField;
public MyBase()
{
this._DataField = this.CreateDataField();
}
public virtual IDataField CreateDataField()
{
return new DataField(); //Implements IDataField
}
**public virtual IDataField GetDataField()**
{
return this._DataField;
}
public void SomeMethod()
{
this.GetDataField().GetValue();
}
}
public class MyComplexBase : MyBase
{
public override IDataField CreateDataField()
{
return new ComplexDataField(); //Implements IComplexDataField which Implements IDataField
}
**public override IComplexDataField GetDataField()**
{
return (IComplexDataField)base.GetDataField();
}
public void SomeComplexSpecificMethod()
{
this.GetDataField().GetValue();
this.GetDataField().GetDefaultValue();
}
}
干杯 安东尼
【问题讨论】:
-
这似乎与 stackoverflow.com/questions/157119/… 完全相同
标签: c# .net polymorphism