Nice post. There are many things that aren't possible in C# but can be expressed in pure IL. Sigil [0] is an IL generator used in the high-performance JSON serializer Jil [1], which takes advantage of this. https://github.com/kevin-montrose/Sigil https://github.com/kevin-montrose/Jil
I've seen Jil/Sigil before, but not thought about it in this way. Are you saying that you could exactly replicate a C# System.String using IL, or am I mis-understanding?
BTW there is a typo: "passed in my the calling code" should probably be "passed in by the calling code".
I wonder if the new C# 6 string interpolation also uses string builder like format does. e.g.
$"Name = {name}, hours = {hours:hh}"
https://msdn.microsoft.com/en-us/library/Dn961160.aspxThis post seems to suggest it uses concatenation, which may be bad for performance in some situations due to the immutability.
https://weblogs.asp.net/bleroy/c-6-string-interpolation-is-n...