如何使用带有参数和返回值的MethodInvoder

时间:2015-03-28 03:51:06

标签: c# delegates

我们需要计算每个函数的函数执行时间。原始代码就像:

private void Cal1() 
{
    Console.WriteLine("Start");
    Console.WriteLine("This is method");
    Console.WriteLine("Bye");
}

显然,没有人喜欢在函数的开头和结尾添加两行相同的行。

然后我尝试使用委托让我们的生活更轻松......

private void Execute(MethodInvoker act)
{ 
    string name = act.GetMethodInfo().ToString();

    Console.WriteLine("Start "+ name);
    act();
    Console.WriteLine("Bye");
}

private void Cal1()
{
    Console.WriteLine("This is method");
}

有人可以像这样打电话......

Execute(Cal1);

在这种情况下,如何使用返回值和参数处理函数?

1 个答案:

答案 0 :(得分:0)

您需要代理类。我想你必须看看这些页面。

https://www.postsharp.net/

http://www.castleproject.org/projects/dynamicproxy/