我有一个基类,它在其方法中使用变量,并且在其方法中需要相同的变量的派生类。 以下是详细信息
abstract class BaseClass
{
protected Transition transition;
public event EventHandler ActionComplete;
private string abc;
Public string ABC
{
get{ return abc;}
set { abc = value;}
}
public void TransitionState(BaseClass obj)
{
ActionComplete(this, null);
}
public abstract void RequestSomeAction(Transition obj);
}
internal class DerivedClass : BaseClass
{
//do i need to create transition variable again here
internal new Transition transition;
//this parameter's value (here obj) should be assigned to the base class,
public override void RequestSomeAction(Transition obj)
{
//is below code correct.
stateTransition = obj;
base.transition= transition;
}
}
答案 0 :(得分:1)
为什么新的转换变量和base.transition?如果你在'基类'中创建一个受保护的变量,你可以直接在扩展该类的'子类'中使用它!?
答案 1 :(得分:0)
首先,如果您不需要重新声明变量,请不要。您可以使用受保护的属性。
this.transition
如果您需要具有相同名称的变量的2个副本(当您需要时我无法想到任何情况)那么您在技术上“隐藏”而不是覆盖,因此您可以这样做:
base.transition
或相同的
((BaseClass)this).transition