으로 변경할 수 있습니다. 하위 클래스의 변수를 무시할 수있는 방법이 있지만 유형을 해당 유형의 하위 클래스로 변경하십시오. 예.하위 클래스의 클래스 변수를 무시하고 그 유형을 하위 클래스
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 버전의 작업을 수행하는 하위 클래스를 가질 수 있습니다. 사용할 때마다 전송하지 않아도됩니다.