Что-то вроде тройной кавычки python в F # (или С#)?

Я хочу присвоить xml-код строковой переменной. Я могу сделать это, не избегая одиночных или двойных кавычек, используя тройную цитату в python. Есть ли аналогичный способ сделать это в F # или С#?

Ответ 1

Насколько я знаю, в С#/F # нет синтаксиса, соответствующего этому. Если вы используете @"str", вам нужно заменить цитату двумя кавычками, и если вы просто используете "str", вам нужно добавить обратную косую черту.

В любом случае существует некоторая кодировка ":

var str = @"allows
  multiline, but still need to encode "" as two chars";
var str = "need to use backslahs \" here";

Однако лучше всего делать, когда вам нужно встроить большие строки (например, данные XML) в ваше приложение, вероятно, использовать ресурсы .NET(или хранить данные в другом месте, в зависимости от вашего приложения). Вложение больших строковых литералов в программу обычно не рекомендуется. Кроме того, использовался как плагин для вставки XML в качестве дерева, которое создает объекты XElement для С#, но я не уверен, все еще существует.

Хотя, я бы лично проголосовал за добавление """, как известно из Python в F #, - это очень полезно, особенно для интерактивных скриптов.

Ответ 2

F # 3.0 поддерживает тройные кавычки. См. Visual Studio F # Team Blog Post на 3.0.

В разделе F # 3.0 Spec Строки и символы упоминается сценарий XML:

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

Ответ 3

Как сказал Shoosh, вы хотите использовать строковые литералы в С#, где строка начинается с @и заключена в двойные кавычки. Единственное исключение - если вам нужно поместить в строку двойную кавычку, в этом случае вам нужно удвоить ее

System.Console.WriteLine(@"Hello ""big"" world");

выводит

Hello "big" world

http://msdn.microsoft.com/en-us/library/362314fe.aspx