1. ホーム
  2. c#

[解決済み] C#6 の長い文字列の補間行

2022-05-10 14:16:10

質問

既存のコード ベースの文字列 Format 呼び出しに文字列補間を適用するととてもよいのですが、一般に望ましい列数の制限を考えると、文字列が急速に長くなりすぎて 1 行に収まらなくなることが分かっています。 特に、補間される式が複雑な場合はそうです。 フォーマット文字列では、変数のリストがあり、複数の行に分割することができます。

var str = string.Format("some text {0} more text {1}",
    obj1.property,
    obj2.property);

どなたか、これらの行を分割する好ましい方法をご存じないでしょうか?

というようなことができるかと思います。

var str = $"some text { obj1.property }" +
  $" more text { obj2.property };

どのように解決するのですか?

あなたは ができます。 で複数行に分割できますが、構文の見た目はもういいとは言えませんね。

を使用する必要があります。 $@ 構文を使って、補間された 逐語的 文字列を使用し、改行を {...} パラメータの中に改行を入れることができます。

string s = $@"This is all {
    10
    } going to be one long {
    DateTime.Now
    } line.";

上の文字列は改行を含まず、実際には次のような内容になります。

これはすべて10が1つの長い01.08.2015 23.49.47の行になります。

(注、ノルウェー語のフォーマット)

さて、そうは言っても、私なら string.Format . 私見では、このような文字列の補間表現はとても良いのですが、より複雑なものは非常に読みづらくなってきます。ということを考えると FormattableString を使わない限り,このコードは String.Format とにかく、私はこのまま String.Format を使い続けることです。