1

初めて C# を使い始めたばかりで、チュートリアルを見ていると、連結 (console.writeline("Hello" + user)ユーザーは文字列変数) とプレースホルダー (console.writeline("Hello {0}" , userユーザーは文字列変数) メソッドの出力の違いについては何も見つかりませんでした。 . 違いはありますか、それとも単にどちらの方法が簡単かということですか

4

3 に答える 3

2

C# に固有のものではなく、多くの言語が両方のスタイルをサポートしています。後者の形式は通常「より安全」と考えられていますが、具体的な理由を引用することはできません. 項目を複数の場所に表示する必要がある場合、または書式文字列を定数として保存する場合に便利です。詳細については、このスレッドをご覧ください: String.Format vs string concatenation を使用する方が良いのはいつですか? .

于 2013-02-07T19:08:13.403 に答える
1

文字列連結とは対照的に、文字列フォーマッタを使用することは、ほぼ完全に読みやすさに関するものです。彼らが実際に何をする、そして彼らがどのように実行するかでさえ、同じに十分近い.

このような単純なケースではどちらも問題ないように見えますが、フォーマット文字列に多数の値が混在する複雑な文字列がある場合は、より見栄えがよくなります。

より良い例を次に示します。

string output = "Hello " + username + ".  I have spent " + executionTime + " seconds trying to figure out that the answer to life is: " + output;

string output = string.Format("Hello {0}.  I have spent {1} seconds trying to figure out that the answer to life is: {2}"
    , username, executionTime, output);
于 2013-02-07T19:42:17.977 に答える
0

マットが言ったように、場所の保持は単純な連結よりも安全なアプローチと見なされますが、その理由についてはわかりません(調査する必要があります)。しかし、確かなことの 1 つは、パフォーマンスの観点からすると、プレース ホールディングは連結よりも少しコストのかかる操作です。Jon Skeet によるこのブログ エントリ "Formatting Strings"を確認してください。

ただし、プレースホルダーを数千回程度使用している場合にのみ、パフォーマンスが大幅に影響を受けます。

于 2013-02-07T19:29:27.550 に答える