在C#中将数据传递给重写的基本方法

UpT*_*eek 2 c#

有点愚蠢的问题,但我想知道将数据从返回到重写的基本方法的可接受方式是在c#中.

我想我能做到:

class A
{
    int x;
    public virtual void DoStuff() {
        Console.WriteLine(x);
    }
}

class B : A
{
    public override void DoStuff() {
        x = 1;
        base.DoStuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是有没有更好的方法,例如不需要使用成员变量?

jde*_*aan 8

一种解决方案可能涉及使用受保护的方法,该方法具有重用来自基类的代码的参数.

class A
{
    public virtual void DoStuff() {
        DoStuffInternal(0);
    }
    protected void DoStuffInternal(int x) {
        Console.WriteLine(x);
    }
}

class B : A
{
    public override void DoStuff() {
        DoStuffInternal(1);
    }
}
Run Code Online (Sandbox Code Playgroud)