47 votes

Chaînes Heredoc en C #

Y at - il une notation heredoc pour les chaînes en C #, de préférence où je ne dois pas échapper à quoi que ce soit (y compris des guillemets doubles, qui sont une bizarrerie dans les chaînes verbatim)?

57voto

Jon Skeet Points 692016

Comme d'autres l'ont dit, il n'y en a pas.

Personnellement, je voudrais éviter de les créer, en premier lieu, bien que - je voudrais utiliser une ressource incorporée à la place. Ils sont assez faciles à travailler, et si vous avez une méthode utilitaire pour charger un nom de ressource incorporée à partir de la convocation de l'assemblée comme une chaîne de caractères (sans doute en supposant que l'encodage UTF-8), cela signifie que:

  • Si votre document incorporé est quelque chose comme SQL, XSLT, HTML, etc vous aurez la coloration syntaxique, car il va vraiment être un SQL (etc) fichier
  • Vous n'avez pas besoin de vous soucier de toute échapper
  • Vous n'avez pas besoin de s'inquiéter au sujet du retrait de votre document ou votre code C# moche
  • Vous pouvez utiliser le fichier dans une voie "normale" si c'est pertinent (par exemple, l'afficher comme une page HTML)
  • Vos données sont séparés à partir de votre code

45voto

Brad Parks Points 5513

Eh bien, même s'il ne prend pas en charge HEREDOC, vous pouvez toujours faire des choses comme les suivantes en utilisant des chaînes Verbatim:

 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);
 

Accroché à: http://blog.luckyus.net/2009/02/03/heredoc-in-c-sharp/

13voto

polygenelubricants Points 136838

Non, il n'y a pas de "HEREDOC" style littéral de chaîne en C#.

C# a seulement deux types de littéraux de chaîne:

  • Régulière littérale, avec de nombreuses séquences d'échappement nécessaire
  • Verbatim littérale, @-cité: doublequotes doivent être échappés par un doublement de

Références

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X