在 C# 中通过引用传输小字符串或大字符串哪个更好?我假设按值传输会强制运行时创建输入字符串的克隆,因此速度较慢。因此,是否建议所有字符串函数都通过引用传递值?
最佳答案
I assumed transferring by value would force the runtime to create a clone of the input string, and thus be slower.
您的假设不正确。 String是引用类型——调用带有字符串参数的方法只是按值复制该引用。不涉及克隆。它是固定大小 - 4 或 8 个字节,具体取决于您使用的 CLR。
(即使它是一个值类型,它基本上也必须包含对其他东西的引用 - 直接在堆栈上分配一个可变大小的值类型是没有意义的。将分配多少空间对于变量?如果将变量的值更改为更短或更长的字符串会发生什么?)
关于c# - 在函数之间通过引用传递字符串是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234283/