是否有方法來覆蓋子類中的變量,但也可以將類型更改爲該類型的子類。 即。我可以覆蓋子類中的類變量,並將其類型更改爲子類
public class BaseClass
{
public BaseClass() { }
protected virtual MyBase WorkField { get { return new MyBase(); } }
public int WorkProperty
{
get { return WorkField.Value; }
}
}
public class DerivedClass : BaseClass
{
public DerivedClass():base() { }
/* I get an error here saying that WorkField needs to be MyBase type*/
protected override MyExtend WorkField
{
get
{
return new MyExtend();
}
}
//public new int WorkProperty
//{
// get { return 0; }
//}
}
public class MyBase
{
public int Value = 1;
}
public class MyExtend : MyBase
{
public int value = 20;
}
有沒有類似這樣的方法,但有效? 所以我可以有一個在MyBase上執行任務的superClass,然後有一個在MyEntend版本上執行任務的子類。 沒有鑄造它,每次我使用它。