最近,我已具有很多診斷日誌記錄在我的代碼部分的模式,即利用lambda表達式/匿名委託的,像這樣:是否有可能擁有太多的匿名代表?
MyEventManager.LogVerbose(LogCategory.SomeCategory,() => String.Format(msg_string, GetParam1(), GetParam2(), GetParam3());
注意,第二個參數LogVerbose是一個lambda表達式,其值爲一個字符串。原因是如果詳細日誌記錄實際上沒有啓用,LogVerbose應該退出儘可能少的工作,以便將性能影響降至最低。在某些情況下,錯誤消息字符串的構造可能需要時間或資源,並且如果lambda表達式從未被評估過,則不會發生性能損失。
我想知道是否拋棄類似這樣的匿名代理的類型系統會對應用程序性能產生一些無法預料的後果,或者是否應該考慮其他任何策略。
這是我懷疑的,這是技術上的理由。 – jlew 2009-06-29 17:18:18