2010-05-15 8 views
10

Quiero asignar un código xml a una variable de cadena. Puedo hacer esto sin evitar comillas simples o dobles mediante el uso de comillas triples en python. ¿Hay alguna manera similar de hacer esto en F # o C#?algo así como la cita triple de una pitón en F # (o C#)?

+0

parece que stri-triples citado ngs están llegando a F # 3.0. –

Respuesta

8

Hasta donde yo sé, no hay sintaxis correspondiente a esto en C#/F #. Si usa @"str", debe reemplazar el presupuesto con dos comillas y si solo usa "str", entonces necesita agregar una barra diagonal inversa.

En cualquier caso, hay algo de codificación de ":

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

Sin embargo, lo mejor que puede hacer cuando se necesita integrar cadenas grandes (tales como datos XML) en su aplicación es probablemente usar. NET recursos (o almacenar los datos en otro lugar, dependiendo de su aplicación). Incrustar literales de cadena grandes en el programa generalmente no es muy recomendable. Además, existe used to be a plugin para pegar XML como un árbol que construye objetos XElement para C#, pero no estoy seguro de si todavía existe.

Aunque, votaría personalmente para agregar """ como se conoce de Python a F # - es muy útil, especialmente para scripts interactivos.

+0

Thnx Tomas. Solo quiero administrar muchos archivos xml "cortos" fácilmente mediante la inserción. Creo que debería usar singe-quote para los atributos XML. Por cierto, leo tu libro. Es genial. –

+1

@tk: ¡Gracias! Sí, creo que incrustar cadenas no es tan "malo" como dicen las directrices ... –

0

En C# La sintaxis es @"some string"

see here

+0

Parece más una cadena cruda de comillas triples. –

+3

Aún necesita codificar '" 'en la cadena, por lo que este no es realmente un equivalente de la sintaxis' '' '' de Python. –

1

Como dijo shoosh, desea utilizar los literales de cadena literales en C#, donde la cadena comienza con @ y está encerrado entre comillas dobles. La única excepción es si hay que poner un signo de comillas dobles en la cadena, en cuyo caso se necesita el doble que

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

emitiría

Hello "big" world

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

14

F # 3.0 admite cadenas de comillas triples. Ver Visual Studio F# Team Blog Post on 3.0 features.

Los F# 3.0 Speccadenas y caracteres sección menciona específicamente el escenario XML:

Una cadena triple citado se especifica mediante el uso de tres comillas ("" ") para asegurarse de que una cadena que incluye uno o más escaparon cadenas se interpretan textualmente Por ejemplo, una cadena triple citado se puede utilizar para incrustar manchas XML:.

Cuestiones relacionadas