这可能是一个愚蠢的问题,但这是可行的。
我有以下问题:
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
}
}
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
}
}
这是假设你是开心MyBaseClass
到有一个公共Something
的方法,当然-如果它不声明Something
(在某种程度上),那么这两个Something
在派生类中的方法是不相关的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句