Zanim przejdziemy do części właściwej artykułu skupimy się na małym przypomnieniu obecnej wiedzy. Język C# wspiera, tzw. verbatim string literals. Identyfikatory dosłownego wyrażenia zaczynają się od znaku: @, otwartego oraz kończącego cudzysłowia. Ich użycie polega na dosłownej interpetacji następującego ciągu znaków – znaki sekwencji ucieczki nie są brane pod uwagę.
Pierwotnie używaliśmy zapisu ("\\"), aby uniknać interpretacji znaków sekwencji ucieczki. Dosłowny zapis powodował pojawienie się błędu w kompilatorze:
// W poniższym przypadku nasz kompilator informował nas o poniższym błędzie: // Unrecognized escape sequence – błąd wyświetlany trzykrotnie string path = "C:\User\Folder\Plik.txt";Wraz z pojawieniem się C# 6.0 dostaliśmy możliwość korzystania z poniższego zapisu:
string path = @"C:\User\Folder\Plik.txt";
Kolejnym niesamowitym udogodnieniem było wprowadzenie, również w C# 6.0, znaku interpolacji ciągu: $. Przed pojawiniem się tego znaku używaliśmy poniższego zapisu, który nie zawsze pozostawał czytelny:
static void Main(string[] args)
{
string brand = "Audi";
string model = "RS6 C6";
string engine = "V10";
string power = "580";
string sentence = String.Format("Samochód {0} {1} wyposażony w silnik {2} o mocy {3}KM ...", brand, model, engine, power);
Console.WriteLine(sentence);
Console.ReadKey();
}
W przypadku dużej ilości parametrów czy skomplikowanych danych związanych z raportami taki zapis mógł utrudniać interpretację całego ciągu. Wraz z pojawieniem się znaku interpolacji zaczeliśmy korzystać z poniższego zapisu (od razu widzimy pasujące parametry):
static void Main(string[] args)
{
string brand = "Audi";
string model = "RS6 C6";
string engine = "V10";
string power = "580";
string sentence = $"Samochód {model} {brand} wyposażony w silnik {engine} o mocy {power}KM ...";
Console.WriteLine(sentence);
Console.ReadKey();
}
Mam nadzieję, że widzicie do czego zmierzam...