c# toString() performance
本文关键字:performance toString | 更新日期: 2023-09-27 17:55:08
我对 C# 中的ToString()
方法很好奇。以以下内容为例:
object height = 10;
string heightStr = height.ToString();
当我在height
上调用ToString()
时,我得到了一个字符串类型。运行时是否为此字符串分配内存?
是的
,运行时将为您创建或请求的任何字符串对象分配内存,包括从方法调用返回的对象。
但是不,这绝对不是您需要担心的事情。它不会对应用程序的性能产生任何明显的影响,并且您永远不应该屈服于过早优化代码的诱惑。
Int32.ToString
方法非常快。它向下调用在 CLR 级别编写的本机代码,这不太可能成为任何应用程序中的性能瓶颈。
事实上,这里真正的性能问题是装箱,即将值类型转换为类型 object
并再次转换回来的过程。这是因为您将height
变量声明为类型 object
,然后为其分配了一个整数值。
height
显式声明为类型 int
是一个更好的主意,如下所示:
int height = 10;
string heightStr = height.ToString();
是的。 创建一个类的新实例(就像在本例中对字符串类所做的那样)将为该实例分配内存。