Cuerdas Heredoc en Do#
¿Hay una notación heredoc para las cadenas en C#, preferiblemente una en la que no tenga que escapar nada (incluidas las comillas dobles, que son una peculiaridad en las cadenas literales)?
4 answers
Como otros han dicho, no la hay.
Personalmente evitaría crearlos en primer lugar, sin embargo, usaría un recurso incrustado en su lugar. Es bastante fácil trabajar con ellos, y si tiene un método de utilidad para cargar un recurso incrustado con nombre desde el ensamblado que llama como una cadena (probablemente asumiendo la codificación UTF-8) significa que:
- Si su documento incrustado es algo como SQL, XSLT, HTML, etc. obtendrá resaltado de sintaxis porque realmente será un archivo SQL (etc)
- Usted no tiene que preocuparse por cualquier escapar
- No necesita preocuparse por sangrar su documento o hacer que su código C# se vea feo
- Puede usar el archivo de una manera" normal " si eso es relevante (por ejemplo, verlo como una página HTML)
- Sus datos están separados de su código
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-21 19:05:20
Bueno, aunque no es compatible con HEREDOC, aún puedes hacer cosas como las siguientes usando cadenas textuales:
string miniTemplate = @"
Hello ""{0}"",
Your friend {1} sent you this message:
{2}
That's all!";
string populatedTemplate = String.Format(miniTemplate, "Fred", "Jack", "HelloWorld!");
System.Console.WriteLine(populatedTemplate);
Enganchado desde: http://blog.luckyus.net/2009/02/03/heredoc-in-c-sharp /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-16 14:14:57
No, no hay un literal de cadena de estilo "HEREDOC" en C#.
C # tiene solo dos tipos de literales de cadena:
- Regular literal, con muchas secuencias de escape necesarias
-
Verbatim literal,
@
- quoted: doublequotes need to be escaped by doubling
Referencias
- csharpindepth.com - Artículos Generales - Cadenas
-
MSDN - C # Programmer's Reference-Strings
Cadena los literales son de tipo
string
y se puede escribir de dos formas, citado y@
-citado.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-21 18:58:33
Una buena referencia para Heredoc equivalentes, disponibles en diferentes lenguajes de programación están en Rosettacode Wiki
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-11 10:20:44