我编写了一个日志类和一个函数,如下代码所示:
Log(System.Reflection.MethodBase methodBase, string message)
每次我记录一些东西时,我也会记录来自 methodBase.Name 和 methodBase.DeclaringType.Name 的类名。
我阅读了以下帖子 Using Get CurrentMethod我注意到这种方法很慢。
我应该使用 this.GetType() 而不是 System.Reflection.MethodBase 还是应该在我的日志中手动记录类/方法名称,例如Log("ClassName.MethodName", "log message)?什么是最佳实践?
最佳答案
这真的取决于。
如果您使用 this.GetType()
方法,您将丢失方法信息,但您将获得很大的性能提升(根据您的链接,显然是 1200 倍)。
如果您提供一个允许调用者提供字符串的接口(interface)(例如 Log("ClassName.MethodName", "log message")
,您可能会获得更好的性能,但这会使您的 API不太友好(调用开发者必须提供类名和方法名)。
关于c# - MethodBase.GetCurrentMethod() 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885582/