c#如何获取方法调用的次数
本文关键字:调用 方法 获取 何获取 | 更新日期: 2023-09-27 18:16:22
在Java中-基于方面-我们可以得到函数调用的次数,例如:
SomeClass sc = new SomeClass();
sc.m1();
sc.m1();
int no = sc.getNumberOfCalls("m1");
System.out.println(no); //2
这是使用外部产品的另一种选择。规范的、最简单的方法可能是简单地使用一个分析器应用程序。就我个人而言,我对jetBrains dotTrace有很好的体验,但还有更多。
基本上你要做的就是让分析器启动你的应用程序,它会跟踪你代码中的所有方法调用。然后,它将显示执行这些方法花费了多少时间,以及它们被调用了多少次。
假设你想知道这个的原因实际上是性能,我认为看一下分析器是个好主意。您可以尝试通过对瓶颈所在进行有根据的猜测来优化代码,但是如果您使用了分析器,您就可以实际地测量它。我们都知道,量两次,剪一次;-)
或
这也是一个不错的选择
AQtime很容易做到这一点。
在您的类中这样做如何?
public class SomeClass
{
private int counter = 0;
public void m1()
{
counter++;
}
public int getMethodCalls()
{
return counter;
}
}
此功能并未内置到。net中。但是,您可以使用任何一个模拟对象框架来完成此操作。例如,使用RhinoMocks,您可以设置对方法的预期调用次数并进行检查。
如果你为你的对象创建一个动态的,运行时的代理,并让你的代理保持跟踪,你也可以做到这一点。这可能会使治疗比疾病本身更糟糕!
——迈克尔。
我相信没有这样的内置功能,所以你可以这样写:
public class SomeClass
{
public Int32 MethodCallCount { get; set; }
public void Method()
{
this.MethodCallCount++;
//Your custom code goes here!
}
}
如果你想更深入,你可能需要寻找AOP(面向方面编程)拦截器!-如果是这样,你可以开始寻找春天。净框架!
如果您在测试场景中,最合适的解决方案是使用模拟框架。
您也可以在c#中使用aspect。
- 春天。净
- EOS