gpt4 book ai didi

c# - 尽可能晚地声明变量并将返回方法作为参数传递

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

如果我有这样的代码:

string s = MyClass.GetString(); // Returns string containing "hello world";
ProcessString(s);

这有什么慢吗?

ProcessString(MyClass.GetString());

如果是,为什么?在第二个示例中,编译器是否通常从 GetString() 生成变量;返回字符串的方法?

此外,尽可能晚地声明变量有什么好处?这对 GC 有好处吗?如果是这样,如何(我假设在 GC gens 方面)?

谢谢

最佳答案

不,编译器将为这两个示例发出相同的 IL(不是所有这样的示例,请注意,只是这个示例)。

请记住,C# 中的任何局部变量都会在方法顶部的 IL 中打包在一起,因此当您声明它们时并不重要,因为 CLR 会在进入方法时为它们分配空间。

尽可能晚声明变量的好处仅仅是为了提高代码的可读性。在尽可能靠近使用它们的地方声明变量,可以让您的代码的读者收集有关变量是什么和做什么的上下文信息,而不仅仅是变量的名称。

关于c# - 尽可能晚地声明变量并将返回方法作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1407279/

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