Необработанные строковые литералы
Удобно записывайте многострочный текст и текст с большим количеством кавычек.
«Необработанные строковые литералы» — бесплатный урок C# Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.
Необработанные строковые литералы
Необработанный строковый литерал заключается минимум в три двойные кавычки. Внутри символы воспринимаются буквально, без обработки escape-последовательностей.
using System;
class Program {
static void Main() {
string s = """Hello "World"!""";
Console.WriteLine(s);
}
}Без escape-последовательностей
Обратные косые черты внутри необработанной строки остаются обычными обратными косыми чертами, что особенно удобно для путей к файлам и шаблонов регулярных выражений.
using System;
class Program {
static void Main() {
string path = """C:\Users\Ada\file.txt""";
Console.WriteLine(path);
}
}Вставка кавычек
Поскольку разделитель состоит из трёх или более кавычек, одинарные и двойные кавычки внутри строки не требуют экранирования.
using System;
class Program {
static void Main() {
string json = """{"name": "Ada", "age": 30}""";
Console.WriteLine(json);
}
}Многострочные необработанные строки
Для многострочного содержимого поместите открывающие и закрывающие кавычки на отдельные строки. Текст между ними сохраняется.
using System;
class Program {
static void Main() {
string text = """
Line one
Line two
""";
Console.WriteLine(text);
}
}Отступы удаляются
В многострочных необработанных строках пробелы перед закрывающими кавычками задают базовый отступ, который удаляется из каждой строки.
using System;
class Program {
static void Main() {
string s = """
indented in source
but flush in output
""";
Console.WriteLine(s);
}
}Больше кавычек для устранения конфликтов
Если содержимое включает три кавычки, используйте в разделителе четыре или больше кавычек, чтобы строка оставалась однозначной.
using System;
class Program {
static void Main() {
string s = """"He said """quote""" today."""";
Console.WriteLine(s);
}
}Интерполяция необработанных строк
Добавьте перед необработанной строкой знак доллара, чтобы включить интерполяцию. Количество знаков доллара определяет, сколько фигурных скобок открывает выражение.
using System;
class Program {
static void Main() {
string name = "Ada";
string s = $"""Hello, {name}!""";
Console.WriteLine(s);
}
}Два знака доллара для буквальных фигурных скобок
При двух знаках доллара одиночные фигурные скобки являются буквальными, а двойные открывают выражение. Это удобно для шаблонов JSON.
using System;
class Program {
static void Main() {
string id = "42";
string s = $$"""{ "id": {{id}} }""";
Console.WriteLine(s);
}
}Чище, чем дословный формат
Необработанные строки заменяют многие случаи использования старой дословной формы, обеспечивая более понятную работу с кавычками и отступами.
using System;
class Program {
static void Main() {
string sql = """
SELECT *
FROM Users
WHERE Active = 1
""";
Console.WriteLine(sql);
}
}Отличный вариант для шаблонов
Необработанные строки делают вставку JSON, XML, HTML или SQL более читаемой, поскольку внутри ничего не нужно экранировать.
using System;
class Program {
static void Main() {
string html = """<a href="/home">Home</a>""";
Console.WriteLine(html);
}
}Когда их использовать
Выбирайте необработанные строки, когда в тексте много кавычек, обратных косых черт или он занимает несколько строк.
using System;
class Program {
static void Main() {
string regex = """\d{3}-\d{4}""";
Console.WriteLine(regex);
}
}Быстрая проверка
Проверьте, насколько хорошо Вы понимаете необработанные строковые литералы.
Итоги
Необработанные строковые литералы используют три или более двойные кавычки и воспринимают содержимое буквально, без escape-последовательностей. Это особенно удобно для путей, регулярных выражений, JSON и HTML. Многострочные варианты сохраняют структуру и удаляют отступ перед закрывающими кавычками.
Если содержимое конфликтует с разделителем, добавьте кавычки, а для интерполяции добавьте знаки доллара. Дополнительные знаки доллара изменяют способ интерпретации фигурных скобок.
Часто задаваемые вопросы
Урок «Необработанные строковые литералы» бесплатный?
Да — полный текст урока «Необработанные строковые литералы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.
Чему я научусь в уроке «Необработанные строковые литералы»?
Удобно записывайте многострочный текст и текст с большим количеством кавычек. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Необработанные строковые литералы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы интерполяции строк
- Составное форматирование с string.Format
- Спецификаторы числового формата и формата даты
- Необработанные строковые литералы