c# toString() performance

本文关键字:performance toString | 更新日期: 2023-09-27 17:55:08

我对 C# 中的ToString()方法很好奇。以以下内容为例:

object height = 10;
string heightStr = height.ToString();

当我在height上调用ToString()时,我得到了一个字符串类型。运行时是否为此字符串分配内存?

c# toString() performance

是的

,运行时将为您创建或请求的任何字符串对象分配内存,包括从方法调用返回的对象。

但是不,这绝对不是您需要担心的事情。它不会对应用程序的性能产生任何明显的影响,并且您永远不应该屈服于过早优化代码的诱惑。

Int32.ToString方法非常快。它向下调用在 CLR 级别编写的本机代码,这不太可能成为任何应用程序中的性能瓶颈。


事实上,这里真正的性能问题是装箱,即将值类型转换为类型 object 并再次转换回来的过程。这是因为您将height变量声明为类型 object ,然后为其分配了一个整数值。

height显式声明为类型 int 是一个更好的主意,如下所示:

int height = 10;
string heightStr = height.ToString();

是的。 创建一个类的新实例(就像在本例中对字符串类所做的那样)将为该实例分配内存。