【发布时间】:2012-04-26 13:25:19
【问题描述】:
我想做的是在各种对象之一上执行一个方法,但是在方法调用之前和之后,我需要执行函数来完成各种维护任务。之前和之后运行的函数总是相同的。方法的返回类型和参数几乎可以是任何东西。
目前,我通过为我正在使用的每个可能的方法签名定义委托来做到这一点,这样做变得非常尴尬。这是一个例子:
protected delegate void DelVoidString(string string1);
protected void Execute(DelVoidString p, string string1)
{
PreInvoke();
p.Invoke(string1);
PostInvoke();
}
除了签名之外,所有签名上的代码都是相同的。所以我的问题是:有没有更好的方法来做到这一点?我不喜欢使用委托,只要我有一些方法可以在需要它们的方法调用之前和之后执行 PreInvoke() 和 PostInvoke(),而不必记住每次都写出该代码。
我对 Lambda 表达式只有模糊的了解……他们能在这里更好地帮助我吗?还是我错过了其他非常明显的东西?谢谢!
【问题讨论】: