Поиск…


Синтаксис

  • @ "verbatim strings - это строки, содержимое которых не экранировано, поэтому в этом случае \ n не представляет символ новой строки, а два отдельных символа: \ и n. Строки Verbatim создаются с префиксом содержимого строки символом @

  • @ «Чтобы избежать кавычек», используются «двойные кавычки».

замечания

Чтобы объединить строковые литералы, используйте символ @ в начале каждой строки.

var combinedString = @"\t means a tab" + @" and \n means a newline";

Многострочные струны

var multiLine = @"This is a 

multiline paragraph";

Выход:

Это

многострочный абзац

Живая демонстрация на .NET скрипке

Многострочные строки, содержащие двойные кавычки, также могут быть экранированы так же, как и в одной строке, потому что они являются стенографическими строками.

var multilineWithDoubleQuotes = @"I went to a city named

                        ""San Diego""

                      during summer vacation.";

Живая демонстрация на .NET скрипке

Следует отметить, что пробелы / табуляции в начале строк 2 и 3 здесь действительно присутствуют в значении переменной; проверьте этот вопрос на предмет возможных решений.

Выход из двойных котировок

Двойные кавычки внутри строк verbatim можно экранировать, используя две последовательные двойные кавычки "" для представления одной двойной кавычки " в полученной строке.

var str = @"""I don't think so,"" he said.";
Console.WriteLine(str);

Выход:

«Я так не думаю», - сказал он.

Живая демонстрация на .NET скрипке

Интерполированные стенограммы Verbatim

Строки Verbatim могут быть объединены с новыми функциями интерполяции String, найденными на C # 6.

Console.WriteLine($@"Testing \n 1 2 {5 - 2}
New line");

Выход:

Тестирование \ n 1 2 3
Новая линия

Живая демонстрация на .NET скрипке

Как и ожидалось из стенографической строки, обратные косые черты игнорируются как escape-символы. И, как и ожидалось из интерполированной строки, любое выражение внутри фигурных фигурных скобок вычисляется перед вставкой в ​​строку в этой позиции.

Строки Verbatim инструктируют компилятор не использовать экранирование символов

В обычной строке символ обратной косой черты - это символ escape, который инструктирует компилятор для поиска следующего символа (ов) для определения фактического символа в строке. ( Полный список экранов символов )

В стенографических строках не существует символьных экранов (кроме "" который превращен в " ). Чтобы использовать строку verbatim, просто добавьте @ перед стартовыми кавычками.

Эта стенографическая строка

var filename = @"c:\temp\newfile.txt"

Выход:

C: \ Temp \ newfile.txt

В отличие от использования обычной (невербальной) строки:

var filename = "c:\temp\newfile.txt"

который будет выводить:

c:    emp
ewfile.txt

используя экранирование символов. ( \t заменяется символом табуляции, а \n заменяется на новую строку.)

Живая демонстрация на .NET скрипке



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow