0

String.Format("{0} {1} at {2} for {3}-{4} ... and finally {7}", var1, var2, ...)、String.Formatの先頭に変数を追加する必要があり、メンテナンスと読みやすさの理由から、避けたいとしましょうString.Format("{8} {0} {1} at {2} ...", ...)

基本的に、次のようなString.Formatsになってしまうことを避けたいと思いますString.Format("{5} {3} {0} {7} {1} {4} {2}", var1, var2, ...。6回の変更要求の後で、すべての変数が置き換えられる場所を非常に注意深く見なければならない場合があります。

交換品を自動的に再注文できるものはありますか?

4

5 に答える 5

1

この構成により、任意の数の変数を連鎖させることができます(これはかなり一般的であり、特定の例では、微調整が必​​要になります)。

string var1 = "a", var2 = "b";
string result = string.Empty;

foreach(var a in new object[] {var1, var2 /*, var3, varN */})
{
    result = string.Format("{1} {0}", a, result);
}

string.Formatとにかく、最小限の労力で結果を達成するために、あなたが避けたい方法で使用したいと思います。

于 2012-10-03T11:54:58.840 に答える
0

以下を使用してください...

var Result=variable+String.Format("{0} {1} at {2} for {3}-{4} ... and finally {7}",var1, var2, ...)  
于 2012-10-03T11:43:48.860 に答える
0

これを試して:

var firstString = string.Format("{0} {1} at {2} for {3}-{4} ... and finally {7}",var1, var2, ...);
var result = yourNewString + firstString;
于 2012-10-03T11:47:01.060 に答える
0

これは次のように行うことができます。

var var1 = String.Empty;
String.Format("{0} {1} {2} at {3} ...", var1, var2, ...);

次に、最初に何かを追加する必要がある場合は、var1値を設定するだけです。

于 2012-10-03T11:47:02.387 に答える
0

整頓するものがないように思われるのでstring.Format(つまり、メンテナにとってより簡単に):

この問題を完全に回避する別の方法は、名前付き文字列の書式設定を使用することです。例:"{parent} yelled at {child}".FormatWith(new { parent = "I", child = "Mark" })

実装例(Phil Haackによる作成)

また、Roslynを使用すると、ある時点で文字列補間を取得できます。これにより、「カスタム作成の構成」を必要とせずにこの問題を解決できます。

于 2015-02-11T15:53:32.240 に答える