gpt4 book ai didi

c# - 在代码块之前和之后执行方法

转载 作者:太空狗 更新时间:2023-10-30 00:24:20 24 4
gpt4 key购买 nike

如何将一些代码放在方括号中以执行以下操作?

MyCustomStatement(args){
// code goes here
}

这样在括号内的代码执行之前,会调用一个方法,当括号内的代码执行完毕后,会调用另一个方法。有这样的事吗?我知道当我可以简单地调用代码之前和之后的方法时,这样做似乎是多余的,但我只是好奇。我不知道该如何准确表达,因为我是编程新手。

谢谢!

最佳答案

您可以通过将代码存储在一个抽象类中来实现这一点,该抽象类在您调用 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
}
}

在调用代码中:

new CustomJob().Run();

当然,对于每一段自定义代码,您都必须创建一个新类,这可能不太理想。

更简单的方法是使用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()
}
}

你可以这样调用:

public void OneOfYourMethods()
{
// your code
}

public void RunYourMethod()
{
new BeforeAndAfterRunner().Run(OneOfYourMethods);
}

关于c# - 在代码块之前和之后执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26484206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com