gpt4 book ai didi

c# - 过度使用委托(delegate)对性能来说是个坏主意吗?

转载 作者:太空狗 更新时间:2023-10-29 22:35:20 26 4
gpt4 key购买 nike

<分区>

考虑以下代码:

if (IsDebuggingEnabled) { 
instance.Log(GetDetailedDebugInfo());
}

GetDetailedDebugInfo() 可能是一个开销很大的方法,所以我们只想在 Debug模式下运行时调用它。

现在,更简洁的替代方法是编写如下代码:

instance.Log(() => GetDetailedDebugInfo());

其中 .Log() 的定义如下:

public void Log(Func<string> getMessage)
{
if (IsDebuggingEnabled)
{
LogInternal(getMessage.Invoke());
}
}

我关心的是性能,初步测试并未显示第二种情况特别昂贵,但我不想在负载增加时遇到任何意外。

哦,请不要建议条件编译,因为它不适用于这种情况。

(附言:我直接在 StackOverflow 提问文本区域中编写了代码,所以如果存在细微错误并且无法编译,请不要怪我,你明白了:)

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