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}";