C# 2.0 如何从派生类使用在基类中声明的vaiable
我有一个基类,在它的方法中使用一个变量,还有一个派生类,它的方法中需要相同的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;} }
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