c#toString()性能

And*_*ndy 7 .net c# tostring

我对ToString()C#中的方法很好奇.举个例子如下:

object height = 10;

string heightStr = height.ToString();
Run Code Online (Sandbox Code Playgroud)

当我打电话 ToString()height,我得到一个字符串类型.运行时是否为此字符串分配内存?

Cod*_*ray 7

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

但不,这绝对不是你必须担心的事情.它不会对您的应用程序的性能产生任何明显的影响,您永远不应该过早地尝试优化代码.

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


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

height明确声明为类型是一个好主意int,如下所示:

int height = 10;
string heightStr = height.ToString();
Run Code Online (Sandbox Code Playgroud)


Kyl*_*man 4

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