47

C# の文字列のヒアドキュメント表記はあります?

4

3 に答える 3

57

他の人が言っているように、ありません。

個人的には、そもそもそれらを作成することは避けますが、代わりに埋め込みリソースを使用します。これらは非常に簡単に操作でき、呼び出し元のアセンブリから名前付きの埋め込みリソースを文字列としてロードするユーティリティメソッドがある場合(おそらくUTF-8エンコーディングを想定)、次のことを意味します。

  • 埋め込まれたドキュメントがSQL、XSLT、HTMLなどの場合、実際にはSQL(etc)ファイルになるため、構文が強調表示されます。
  • 逃げる心配はありませ
  • ドキュメントをインデントしたり、C#コードを醜く見せたりすることを心配する必要はありません。
  • 関連する場合は、「通常の」方法でファイルを使用できます(たとえば、HTMLページとして表示します)。
  • データはコードから分離されています
于 2010-08-21T19:05:20.223 に答える
45

HEREDOC をサポートしていませんが、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);

引っ掛かり: http://blog.luckyus.net/2009/02/03/heredoc-in-c-sharp/

于 2011-09-16T14:14:57.843 に答える
13

いいえ、C# には "HEREDOC" スタイルの文字列リテラルはありません。

C# には、次の 2 種類の文字列リテラルしかありません。

  • 多くのエスケープ シーケンスが必要な通常のリテラル
  • 逐語的リテラル、@引用符付き: 二重引用符は、二重化してエスケープする必要があります

参考文献

于 2010-08-21T18:52:57.927 に答える