7、字符串拼接避免值类型装箱!

internal class ConcatShouldTostring
    {
        //字符串拼接内部使用 string 的静态方法 Concat (object arg1,object arg2...)
        //装箱为 objcet 后调用 ToString 方法进行拼接
        public void ShouldTostring() { var s = $"{1.ToString()}234"; }//避免装箱
        public void Not() { var s = $"{1}234"; }//装箱
    }

 同样的装箱引起的性能问题有,使用 List<T> 而不要使用 Array 它在 Add 的时候会装箱。

有些框架里为什么会有装箱工具类?,当装箱无可避免的时候手动装箱一次是比较划算的,比如 int i =0 ; string s = $"1{i}{i}{i}";  改为 object o = i ;string s =  $"1{o}{o}{o}"; 

posted @ 2019-07-03 21:06  zwsu  阅读(219)  评论(0编辑  收藏  举报