如何使用派生类在基类中声明的变量

时间:2011-06-08 13:37:37

标签: c#-2.0

我有一个基类,它在其方法中使用变量,并且在其方法中需要相同的变量的派生类。 以下是详细信息

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;
    }

}

2 个答案:

答案 0 :(得分:1)

为什么新的转换变量和base.transition?如果你在'基类'中创建一个受保护的变量,你可以直接在扩展该类的'子类'中使用它!?

答案 1 :(得分:0)

首先,如果您不需要重新声明变量,请不要。您可以使用受保护的属性。

this.transition

如果您需要具有相同名称的变量的2个副本(当您需要时我无法想到任何情况)那么您在技术上“隐藏”而不是覆盖,因此您可以这样做:

base.transition

或相同的

((BaseClass)this).transition

MSDN on base