调用另一个方法时调用方法

Mik*_*son 2 c# methods partial-methods class

这可能是一个愚蠢的问题,但这里有.

我有以下问题:

public class MyBaseClass
{
    public void SomethingAwesome()
    {
        //Awesome stuff happens here, but only when the Something() method
        //is called in the other classes.
    }
}

public class SomeClass : MyBaseClass
{
    public void Something()
    {
        //Something happens here
    }
}

public class SomeOtherClass : MyBaseClass
{
    public void Something()
    {
        //Something else happens here
    }
}
Run Code Online (Sandbox Code Playgroud)

MyBaseClass有一个方法,当从继承它的类中调用Something()方法时需要调用该方法.

这背后的想法是,我需要记录这个方法被调用时出于很多无聊的公司原因.我宁愿有一个基类,它可以在调用方法时自动进行审计,而不是让开发人员自己调用该方法.

可以实现这样的事情吗?如果是这样,怎么样?

我已经考虑过部分方法,但这需要具有相同名称的类,这在这种情况下是不可能的.

Jon*_*eet 6

听起来你想要模板方法模式:

public abstract class MyBaseClass
{
    public void Something()
    {
        // Code from SomethingAwesome here, or keep SomethingAwesome
        // separate and call it from here
        SomethingImpl();
    }

    protected abstract void SomethingImpl();
}

public class SomeClass : MyBaseClass
{
    protected override SomethingImpl()
    {
        // Something happens here
    }
}
Run Code Online (Sandbox Code Playgroud)

这是假设你是开心MyBaseClass一个公共Something的方法,当然-如果它不声明Something(在某种程度上),那么这两个Something在派生类中的方法是不相关的.

  • 我认为有一个小错字:"SomethingAwful"也许应该说"SomethingAwesome"? (2认同)