Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
string name = "Soren"; // Использование синтаксиса с фигурными скобками. string greeting = string.Format("Hello {0} you are {1} years old.", name, age); Console.WriteLine(greeting); // Использование интерполяции строк. string greeting2 = $"Hello {name} you are {age} years old."; Console.WriteLine(greeting2);}В переменной
greeting2$С новым синтаксисом связан еще один интересный аспект: фигурные скобки, используемые в интерполяции строк, обозначают допустимую область видимости. Таким образом, с переменными можно применять операцию точки, чтобы изменять их состояние. Рассмотрим модификацию кода присваивания переменных
greetinggreeting2string greeting = string.Format("Hello {0} you are {1} years old.", name.ToUpper(), age);string greeting2 = $"Hello {name.ToUpper()} you are {age} years old.";Здесь посредством вызова
ToUpper(){age += 1}Полезно также отметить, что в рамках нового синтаксиса внутри строкового литерала по-прежнему можно использовать управляющие последовательности. Таким образом, для вставки символа табуляции необходимо применять последовательность
tstring greeting = string.Format("tHello {0} you are {1} years old.", name.ToUpper(), age);string greeting2 = $"tHello {name.ToUpper()} you are {age} years old.";Определение дословных строк (обновление в версии 8.0)
Когда вы добавляете к строковому литералу префикс
@string\// Следующая строка воспроизводится дословно,// так что отображаются все управляющие символы.Console.WriteLine(@"C:MyAppbinDebug");Также обратите внимание, что дословные строки могут использоваться для предохранения пробельных символов в строках, разнесенных по нескольким строкам вывода:
// При использовании дословных строк пробельные символы предохраняются.string myLongString = @"This is a very very very long string";Console.WriteLine(myLongString);Применяя дословные строки, в литеральную строку можно также напрямую вставлять символы двойной кавычки, просто дублируя знак
"Console.WriteLine(@"Cerebus said ""Darrr! Pret-ty sun-sets""");Дословные строки также могут быть интерполированными строками за счет указания операций интерполяции (
$@string interp = "interpolation";string myLongString2 = $@"This is a very very long string with {interp}";Нововведением в версии C# 8 является то, что порядок следования этих операций не имеет значения. Работать будет либо
$@@$Работа со строками и операциями равенства
Как будет подробно объясняться в главе 4, ссылочный тип — это объект, размещаемый в управляемой куче со сборкой мусора. По умолчанию при выполнении проверки на предмет равенства ссылочных типов (с помощью операций
==! =truestringstringstatic void StringEquality(){ Console.WriteLine("=> String equality:");