调用ToString()以防止装箱

戴维·克莱姆普夫纳

使用以下代码段:

public static void Main()
{
    int v = 2;
    Console.WriteLine("number" + "," + v);
}

显然,最好在调用v中用替换以防止将值类型装箱。但是,调用仍然像在装箱值类型一样在堆上分配一个对象。v.ToString()WriteLine()ToString()

那么使用v.ToString()而不是装箱有什么好处

更新:int.ToString()在将值传递给string.Concat()有或没有显式调用int.ToString()自己的情况下,好像调用了我检查了CIL有无ToString(),它们是相同的。

在此处输入图片说明

韦桑

ToString()仅当变量的类型没有重写时才装箱ToString()(因此,它必须转到Object的实现中)。但是,int确实有一个覆盖ToString()(请参见http://msdn.microsoft.com/zh-cn/library/6t7dwaa5(v=vs.110).aspx),因此不会发生这种情况。

装箱实际上是由+操作员执行的,因为它只调用string.Concat,它需要类型的参数Object(或string,取决于使用的重载类型)。因此,必须为呼叫装箱整数。然后,该string.Concat方法int再次打开框并调用ToString()因此,如果您自己命名,则不必进行装箱和拆箱操作,从而节省了时间。

尽管在大多数情况下性能会有所提高,但性能会有一定的提高。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改异步方法调用以防止强制异步调用堆栈

来自分类Dev

防止PowerShell“装箱”程序输出

来自分类Dev

在JSF组件中使用render是否足够安全以防止伪造的动作调用?

来自分类Dev

调用函数以防止因提前输入而失去焦点(Bootstrap UI)

来自分类Dev

我可以防止嵌套的不赞成使用的方法调用引发警告吗?

来自分类Dev

JSF是否可以防止被篡改的请求调用未呈现的托管Bean操作

来自分类Dev

JavaScript'Hacking'-是否可以防止接收套接字或调用函数?

来自分类Dev

具有超时的递归函数以防止超出堆栈调用

来自分类Dev

IIS ASP.NET MVC 和 dllimport 调用锁定文件以防止将来部署

来自分类Dev

查看所有 Firebase Cloud 函数的上次调用(以防止不活动的函数)

来自分类Dev

C#至CIL装箱与ToString成本

来自分类Dev

宏以防止代码处理

来自分类Dev

同步方法以防止ConcurrentModificationException

来自分类Dev

在iPad上调用Framework7模态叠加水龙头,以防止滚动而不是handleClick

来自分类Dev

“ NOT NULL”是否可以防止rowid混淆?

来自分类Dev

锁定表行以防止数据修改

来自分类Dev

刷新缓存以防止基准波动

来自分类Dev

LESS可以防止样式重复吗?

来自分类Dev

正确的方法,以防止管道BASH

来自分类Dev

最佳填充因子以防止碎片

来自分类Dev

使用std :: move以防止复制

来自分类Dev

锁定RabbitMQ队列以防止竞争情况

来自分类Dev

扩展,实施或特质以防止参考循环

来自分类Dev

启动SweetAlert以防止用户关闭窗口

来自分类Dev

扩展单应矩阵以防止失真

来自分类Dev

限制内存使用以防止交换

来自分类Dev

如何优化此查询以防止超时

来自分类Dev

拦截SqlServerMigrationsSqlGenerator以防止某些表迁移?

来自分类Dev

是否可以防止ReplicaSet扩大/缩小?

Related 相关文章

  1. 1

    如何更改异步方法调用以防止强制异步调用堆栈

  2. 2

    防止PowerShell“装箱”程序输出

  3. 3

    在JSF组件中使用render是否足够安全以防止伪造的动作调用?

  4. 4

    调用函数以防止因提前输入而失去焦点(Bootstrap UI)

  5. 5

    我可以防止嵌套的不赞成使用的方法调用引发警告吗?

  6. 6

    JSF是否可以防止被篡改的请求调用未呈现的托管Bean操作

  7. 7

    JavaScript'Hacking'-是否可以防止接收套接字或调用函数?

  8. 8

    具有超时的递归函数以防止超出堆栈调用

  9. 9

    IIS ASP.NET MVC 和 dllimport 调用锁定文件以防止将来部署

  10. 10

    查看所有 Firebase Cloud 函数的上次调用(以防止不活动的函数)

  11. 11

    C#至CIL装箱与ToString成本

  12. 12

    宏以防止代码处理

  13. 13

    同步方法以防止ConcurrentModificationException

  14. 14

    在iPad上调用Framework7模态叠加水龙头,以防止滚动而不是handleClick

  15. 15

    “ NOT NULL”是否可以防止rowid混淆?

  16. 16

    锁定表行以防止数据修改

  17. 17

    刷新缓存以防止基准波动

  18. 18

    LESS可以防止样式重复吗?

  19. 19

    正确的方法,以防止管道BASH

  20. 20

    最佳填充因子以防止碎片

  21. 21

    使用std :: move以防止复制

  22. 22

    锁定RabbitMQ队列以防止竞争情况

  23. 23

    扩展,实施或特质以防止参考循环

  24. 24

    启动SweetAlert以防止用户关闭窗口

  25. 25

    扩展单应矩阵以防止失真

  26. 26

    限制内存使用以防止交换

  27. 27

    如何优化此查询以防止超时

  28. 28

    拦截SqlServerMigrationsSqlGenerator以防止某些表迁移?

  29. 29

    是否可以防止ReplicaSet扩大/缩小?

热门标签

归档