5

string.FormatC#で関数に渡すことと追加の引数の副作用はありますか? MSDN ( http://msdn.microsoft.com/en-us/library/b1csw23d.aspxstring.Format )で関数のドキュメントを見ていましたが、答えが見つかりませんでした。

例えば:-

string str = string.Format("Hello_{0}", 255, 555);

ご覧のとおり、フォーマット文字列によると、その後に引数を 1 つだけ渡すことになっていますが、ここでは 2 つ渡しました。

編集: 私は自分の側で試してみましたが、すべてうまくいきました。私はC#とCのバックグラウンドが初めてなので、後で実行しても問題が発生しないことを確認したいだけです。

4

2 に答える 2

8

Reflectorを見ると、文字列を構築するためにもう少しメモリが割り当てられますが、余分なオブジェクトを渡すことによる大きな影響はありません。

{n}また、フォーマット文字列nに大きすぎる場所を誤って含めてから、予備の引数を追加した場合、例外は発生せず、予期しない項目を含む文字列が含まれるという「副作用」もあります。

于 2012-11-30T12:54:07.970 に答える
2

string.Formatに提供するリンクの例外セクションを見ると

「フォーマット項目のインデックスがゼロ未満、またはargs配列の長さ以上です。」

Microsoftは、引数が多すぎる場合にスローできることを示していないため、スローしません。その効果は、役に立たないパラメータによるメモリのわずかな損失です

于 2012-11-30T13:00:15.740 に答える