我正在使用 C# 开发一个框架,该框架将依赖于实现为继承基类的类的可插入组件。为了使组件尽可能简单,我正在研究一些奇怪的控制流。
基类包含一个静态方法RunStep(parameter)。该方法被继承类多次调用,每次调用都会检查一个条件。如果这个条件恰好为假,我希望调用方法停止并返回。代码的简化工作版本是:
基类:
class MyBase
{
private static object RunStep(string parameter)
{
if(SomeFunction(parameter))
return SomeOtherFunction(parameter);
else
return null;
}
}
继承类:
class MyInheritor
{
public void Run()
{
object result = RunStep("mystring1");
if(null != result)
{
//perform some logic on result
result = RunStep("mystring2");
if(null != result){
//perform some different logic on result
RunStep("mystring3");
}
}
}
}
我想知道是否可以在基类中做一些事情,以便我可以将继承类简化为:
class MyInheritor2
{
public void Run()
{
object result = RunStep("mystring1");
//perform some logic on result
result = RunStep("mystring2");
//perform some different logic on result
result = RunStep("mystring3");
}
}
}
我会将参数放在一个列表中并循环遍历它们,但是在每次调用 RunStep 方法之后需要发生一些逻辑,并且每次的逻辑都不同。这需要一个循环。另请注意,RunStep 调用之间的逻辑访问结果的属性,因此它在没有空检查的情况下崩溃。
这似乎是一件微不足道的事情,但可能有成千上万个这样的继承类,简化它们是一件大事。