gpt4 book ai didi

c# - 分配方法的结果值是否比再次调用该方法更快?

转载 作者:行者123 更新时间:2023-11-30 22:06:09 25 4
gpt4 key购买 nike

出于好奇,哪一个在性能方面会更快更好?

一些非常基本的代码:

List<string> list = new List<string>();
list.Add("FOO");
list.Add("BAR");

1)

//Calling count twice in the if statement
if(list.Count() > 0 || list.Count() < 3)
{
Console.WriteLine("There are two items");
}

2)

//Assigning count return result to a variable
var listCount = list.Count();
if(listCount > 0 || listCount < 3)
{
Console.WriteLine("There are two items");
}

最佳答案

答案是“视情况而定”。我敢肯定,在某些情况下调用一个方法两次会更快,但我会说绝大多数情况下,将返回值分配给一个变量并简单地引用该变量会更快。

如果您知道使用方法(或属性,因为它们只是一种方法)的开销很大,那么您绝对应该存储结果。

我的经验是,如果我多次使用一个返回值,我会将它存储在一个变量中。我唯一不会这样做的情况是,如果您知道返回值可能会在方法调用之间发生变化。

但是在您访问 Count 的示例中或 Count() , 后者对于 List<> 来说很快类型(但对于其他类型来说可能很昂贵),将它存储到变量与调用它两次相比,性能改进可以忽略不计,所以我会做任何让你开心的事情。

关于c# - 分配方法的结果值是否比再次调用该方法更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23806271/

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