gpt4 book ai didi

c# - 封装方法调用

转载 作者:行者123 更新时间:2023-11-30 14:01:00 25 4
gpt4 key购买 nike

我有一些机制来衡量方法执行时间。只是在方法开始时我节省了时间,在方法结束时我节省了时间,我比较了这两个值。

但每次我想使用它时,我都需要更改方法体。

我正在寻找一种更简洁的方法——比如让一个对象负责测量时间,它可以封装方法调用——比如一些包装器,调用该方法,传递返回值,并在该过程中也测量时间。

另外,我知道这可能有点科幻,但是有没有办法包装或附加到所有方法(甚至方法的子集)?例如,它也可以用于日志记录——比如“我正在使用参数 YYY 调用实例 XXX 的方法并返回值 vas ZZZ”?

我知道在 Java EE 中可以实现类似的功能。 (如果我没记错的话,我认为它被称为拦截器,它们可以附加到某些或所有方法并添加功能,但我不知道这在 .net 中是否可行)

谢谢。

最佳答案

我使用了这个简单的方法:

TimeSpan TimeAction(Action action)
{
var sw = new Stopwatch();
sw.Start();
action.Invoke();
sw.Stop();
return sw.Elapsed;
}

下面是使用方法

var time = TimeAction(() =>
{
//your code here
});

关于c# - 封装方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9328718/

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