Я хочу присвоить xml-код строковой переменной. Я могу сделать это, не избегая одиночных или двойных кавычек, используя тройную цитату в python. Есть ли аналогичный способ сделать это в F # или С#?
Что-то вроде тройной кавычки 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
Ответ 4
В С# синтаксис @"some string"