c# - 在函数之间通过引用传递字符串是否更快?

标签 c# .net string performance byref

在 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/

相关文章:

c# - 将来自网络的图像保存到 Windows Phone 8.1 RT C# 中的已保存图片文件夹

c# - 如何使用图像作为鼠标指针而不是使用 C# 的默认箭头?

c# - 尝试将 Azure Blob 存储 URI 添加到 Azure 存储表时出错

c# - 如何从字符串中获取字符串,以特定字符串开始和结束

c# - LINQ 是否缓存计算值?

c# - 设计问题

c++ - 如何在 C++ 中从字符串中快速查找和子字符串化多个项目?

c# - 使用包装器类模拟 .NET 类

javascript - 在 JavaScript 中将字符串解析为命令和参数

具有隐式转换的 C++ 类字符串类