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()方法时需要调用该方法.
这背后的想法是,我需要记录这个方法被调用时出于很多无聊的公司原因.我宁愿有一个基类,它可以在调用方法时自动进行审计,而不是让开发人员自己调用该方法.
可以实现这样的事情吗?如果是这样,怎么样?
我已经考虑过部分方法,但这需要具有相同名称的类,这在这种情况下是不可能的.
听起来你想要模板方法模式:
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
在派生类中的方法是不相关的.