Ogn*_*rov 5 boxing string-interpolation c#-6.0
我要求这是为了性能 - 使用大量的拳击会产生大量的堆分配,这会带来更多的GC收集,这有时会导致应用程序冻结以瞥见令用户烦恼的一瞥.
所有字符串插值(至少在通常情况下)都是调用string.Format().
现在,调用string.Format()分配了很多,而不仅仅是因为拳击(例如,string.Format("{0:s} - {1:B}: The value is: {2:C2}", DateTime.UtcNow, Guid.NewGuid(), 3.50m)13个分配,其中只有3个由于拳击),尽管有关于未来改进的讨论.
虽然在性能方面和往常一样,但通常不应该盲目地在任何地方编写不可读的代码,因为可读版本已知性能问题.相反,将不可读的高效代码限制为实际需要它的代码部分.