[英]c# toString() performance
我很好奇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();
是。 创建类的新实例(在本例中使用字符串类)将为实例分配内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.