可能重复:
如何调用base.base.method()?
我在C#中有一些继承问题。我已经勾勒三类:A,B和C。C从继承B和B从A。现在,B该类base.Method1可以正常运行,但是我不能A.method1从C该类中调用。如果我把base.Method1从C显然是法会method1的B。有什么建议吗?
PS在A课堂上,有些字段标记为私有,因此您只能访问它们
class A
{
private instance;
public virtual void Method1 ()
{
instance = this;
do something;
}
}
class B : A
{
public override void Method1()
{
base.Method1();
do something;
}
}
class C : B
{
public override void Method1 ()
{
//need A Method1 then do something
}
}
Run Code Online (Sandbox Code Playgroud)
这是C#的一个特性。如果您希望将此方法公开给类 C,请考虑像这样重构 A:
class A
{
private instance;
public virtual void Method1 ()
{
AMethod1();
}
protected void AMethod1()
{
instance = this;
do something;
}
}
Run Code Online (Sandbox Code Playgroud)
这将使您能够从 C 内部调用此方法:
class C : B
{
public override void Method1 ()
{
AMethod1();
// do something;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5990 次 |
| 最近记录: |