A C# 6.0-ás változatában mutatkozott be a string interpolation funkció. Ez a C# 10 és .NET 6 előtt belsőleg a String.Format metódusra támaszkodott, azonban C# 10 óta a fordító jobban kezeli ezeket a hívásokat. A string interpolation ugyanazokat a formázó karaktereket támogatja, mint a String.Format. Az interpolált szövegek a $ karakterrel kezdődnek:
int valtozo = 13;
string interpolalt = $"{nameof(valtozo)} értéke: {valtozo}";
A dollár jellel kezdett szövegek esetén a kapcsos zárójeleken belül közvetlenül hivatkozhatunk a változókra, ha pedig formázni szeretnénk őket, akkor a kapcsos zárójelen belül a változó név után kettősponttal elválasztva megadhatjuk a formátumot.
int valtozo = 13;
//az x hexa, a 2 pedig, hogy 2db számjegyet szeretnénk
//a kimenete: "valtozo értéke hexadecimálisan: 0d"
string interpolalt = $"{nameof(valtozo)} értéke hexadecimálisan: {valtozo:x2}";
C# 10 óta az interpoláció igencsak fel lett okosítva. Sok esetben már fordítási időben kigenerálja a szöveget, ha lehetősége van rá, illetve csak a legvégső esetben hívja a String.Format metódust. Nézzük ezt a példát:
string nev = "World";
string hello = $"Hello {nev}!";
Ebben az esetben, mivel a nev változó a végén helyezkedik el a szövegnek, így valójában a generált kód egy szimpla + operátoros összefűzés lesz, ami jelen esetben gyorsabb, mint egy komplex String.Format hívás. Ha viszont a nev konstans (const) módosító, akkor már fordítási időben a hello értéke felveszi a "Hello World" szöveget, anélkül, hogy futási időben bármiféle metódushívás történne.
Éppen ezért ha .NET 6 és C# 10 rendelkezésre áll, akkor a String.Format hívás helyett igyekezzünk az interpolációt használni. A könyv további részeiben még a régi Format megközelítés látható sok helyen. Ennek oka abban keresendő, hogy a példakódok többsége még korábbi C# verziókkal készült el.