4

在 C# 中通过引用传输小字符串或大字符串更好吗?我假设按值传输会强制运行时创建输入字符串的克隆,因此速度会变慢。因此,是否建议所有字符串函数通过引用传递值?

4

1 回答 1

11

我假设按值传输会强制运行时创建输入字符串的克隆,因此速度会变慢。

你的假设是不正确的。String是一种引用类型 - 使用字符串参数调用方法只是按值复制该引用。不涉及克隆。它是一个固定大小 - 4 或 8 个字节,具体取决于您使用的 CLR。

(即使它是一个值类型,它也必须基本上包含对其他东西的引用——直接在堆栈上分配一个可变大小的值类型是没有意义的。将为变量分配多少空间? 如果将变量的值更改为更短或更长的字符串会发生什么?)

于 2012-09-02T07:54:59.203 回答