object a = 10;

박싱이 일어나서 int 값이 힙에 할당됨,


string a = 10.ToString();

10이라는 값이 ToString을 호출하면서 스트링 문자열이 힙에 할당됨.


둘다 어차피 값이였던 데이터가 힙에할당되는건 마찬가지인데


왜 이펙티브 c#보면 문자열 보간에서 $"a is {10.ToString()}" ToString을 쓰는게 박싱을 피할수있어서 오버헤드를 피할수 있다고 설명하는거임?


어차피 있는거나 없는거나 힙에 할당되는건 마찬가지일텐데