最近,我已经开始在代码的某些部分中使用大量诊断日志记录模式,这些记录模式使用lambda表达式/匿名委托,例如:
MyEventManager.LogVerbose( LogCategory.SomeCategory, () => String.Format(msg_string, GetParam1(), GetParam2(), GetParam3() );
请注意,LogVerbose的第二个参数是一个lambda表达式,它将计算为一个字符串。这样做的原因是,如果未实际启用详细日志记录,则LogVerbose应该在尽可能少的工作量下退出,以最小化性能影响。在某些情况下,构建错误消息字符串可能需要时间或资源,如果永远不评估lambda表达式,则不会产生性能损失。
我想知道像这样在类型系统中添加许多匿名委托是否会对应用程序性能产生一些意想不到的后果,或者是否应考虑其他策略。