如何在括号中包含一些代码来执行以下操作?
MyCustomStatement(args){
// code goes here
}
Run Code Online (Sandbox Code Playgroud)
因此,在括号中的代码执行之前,它将调用一个方法,当括号中的代码完成执行时,它将调用另一个方法.有这样的事吗?我知道当我可以简单地在代码之前和之后调用方法时,这样做似乎是多余的,但我只是很好奇.我不知道怎么说这个,因为我是编程的新手.
谢谢!
您可以通过将代码存储在一个抽象类中来执行此操作,该类在您调用时为您执行"之前"和"之后"代码Run():
public abstract class Job
{
protected virtual void Before()
{
// Executed before Run()
}
// Implement to execute code
protected abstract void OnRun();
public void Run()
{
Before();
OnRun();
After();
}
protected virtual void After()
{
// Executed after Run()
}
}
public class CustomJob : Job
{
protected override void OnRun()
{
// Your code
}
}
Run Code Online (Sandbox Code Playgroud)
并在调用代码中:
new CustomJob().Run();
Run Code Online (Sandbox Code Playgroud)
当然,对于每一段自定义代码,您都必须创建一个新类,这可能不太理想.
一种更简单的方法是使用Action:
public class BeforeAndAfterRunner
{
protected virtual void Before()
{
// Executed before Run()
}
public void Run(Action actionToRun)
{
Before();
actionToRun();
After();
}
protected virtual void After()
{
// Executed after Run()
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样打电话:
public void OneOfYourMethods()
{
// your code
}
public void RunYourMethod()
{
new BeforeAndAfterRunner().Run(OneOfYourMethods);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2438 次 |
| 最近记录: |