Многострочный строковый литерал в C#

Переместите y = [] в начало autoSolve.

976
задан Chet 8 July 2009 в 20:03
поделиться

3 ответа

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

string query = @"SELECT foo, bar
FROM table
WHERE id = 42";

У вас также нет для экранирования специальных символов при использовании этого метода, за исключением двойных кавычек, как показано в ответе Джона Скита.

1487
ответ дан 19 December 2019 в 20:21
поделиться

Одна возможность:

String imgRegex = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>";

- это возможность (при совпадении без учета регистра). Это немного беспорядок и намеренно игнорирует случай, когда кавычки не используются. Чтобы представить это, не беспокоясь о побегах строк:

<img[^>]+src\s*=\s*['"]([^'"]+)['"][^>]*>

Это соответствует: помощники, от первого лица их использования в ваших собственных приложениях, это факт что только ОДИН помощник класса для данного class может быть в области видимости в любое время ". ... "То есть, если у вас есть два помощника по объему будет признан только ОДИН компилятором. Вы не получите ничего предупреждения или даже намеки на любые другие s не только безвреден, но, вероятно, улучшает читаемость везде, где вы видите строку - но в других местах это может не требоваться, и в этом случае вам либо нужно не использовать многострочный буквальный строковый литерал для начать с или удалить их из результирующей строки.

Единственный способ экранирования состоит в том, что если вы хотите использовать двойные кавычки, вам нужно добавить дополнительный символ двойной кавычки:

string quote = @"Jon said, ""This will work,"" - and it did!";
532
ответ дан 19 December 2019 в 20:21
поделиться

One other gotcha to watch for is the use of string literals in string.Format. In that case you need to escape curly braces/brackets '{' and '}'.

// this would give a format exception
string.Format(@"<script> function test(x) 
      { return x * {0} } </script>", aMagicValue)
// this contrived example would work
string.Format(@"<script> function test(x) 
      {{ return x * {0} }} </script>", aMagicValue)
103
ответ дан 19 December 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: