C# 2.0 如何从派生类使用在基类中声明的vaiable

C# 2.0 如何从派生类使用在基类中声明的vaiable,c#-2.0,C# 2.0,我有一个基类,在它的方法中使用一个变量,还有一个派生类,它的方法中需要相同的vaiable。 详情如下 abstract class BaseClass { protected Transition transition; public event EventHandler ActionComplete; private string abc; Public string ABC { get{ return abc;} set { abc = value;} }

我有一个基类,在它的方法中使用一个变量,还有一个派生类,它的方法中需要相同的vaiable。 详情如下

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

}

为什么要使用新的转换变量和base.transition?如果在“基类”中保护变量,则可以直接在扩展该类的“子类”中使用它

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

this.transition

如果您需要两个同名变量的副本(我想不出任何情况下您需要这样做),那么您在技术上是“隐藏”还是重写,因此您可以:

base.transition
还是一样

((BaseClass)this).transition

.

这意味着无需声明内部新转换;我不需要打电话给base.transition?我可以直接调用transition?@starz26如果您让DerivedClass扩展包含受保护变量转换的基类,DerivedClass可以立即访问该变量。这意味着您可以在DerivedClass中使用(This.)transition!如果我在基类中有一个属性ABC,那么子类如何访问tht呢。它是用属性名(ABC)还是用变量(this.ABC)?this.ABC==ABC???“this”关键字从来都不是必需的,除非它是单独使用的,我才不推广它!我只是帮忙,有时人们想做坏事。:)便利犯罪也是一种犯罪:P