1

メソッド呼び出しが型オブジェクトをパラメーターとして受け入れる場合、文字列ビルダーで ToString() メソッドを呼び出すことに利点はありますか?

StringBuilder sb = new StringBuilder("Hello");

System.Console.WriteLine(sb);

また

System.Console.WriteLine(sb.ToString());

私が知っていることから、WriteLine がオブジェクトをオーバーロードとして受け取ることから、オブジェクトに対して ToString() メソッドが呼び出され、次に StringBuilder.ToString() メソッドが呼び出され、期待される文字列値が返されると思います。

繰り返しますが、明示的に ToString() を呼び出すことには何か利点がありますか? あなたの答えを正当化していただけますか?

4

4 に答える 4

2

「私の推測では、オブジェクトに対して ToString() メソッドが呼び出されます」

MSDNを見ると、StringBuilderを直接消費するオーバーロードがないことがわかります。そのため、anything( )を受け入れるものobjectを使用しています。

あなたの推測は正しかったので、 を呼び出すだけToStringです。

値が null の場合、行末記号のみが書き込まれます。それ以外の場合は、value の ToStringメソッドが呼び出されてその文字列表現が生成され、結果の文字列が標準出力ストリームに書き込まれます。

次に、読みやすく、. を渡しても何も得られないため、自分で呼び出すことをお勧めしますStringBuilder

于 2013-08-13T21:22:24.283 に答える
0

いいえ、メリットはありません。ReSharper のような優れた静的分析機能を備えたツールは、呼び出しが冗長であり、安全に削除できることを実際に知らせてくれます。

于 2013-08-13T21:11:09.557 に答える