demande s'il y a un moyen de faire ce qui suit:Modifier la signature de retour par héritage - Juste Polymorphisme
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();
}
}
Vive Anthony
Cela semble être une copie exacte de http://stackoverflow.com/questions/157119/c-can-i-override-with-derived-types –