0

私の最後の質問に関連して(変数のグループを配列として渡す簡単な方法はありますか

個々のメソッドで書き込みを行うのではなく、文字列変数をメソッドに渡してストリームに書き込もうとしていました。

params キーワードの使用は明らかに解決策ですが、それを使用すると、次のようなことはできないと思います。

Write("hello {0}",var1);

これがないと、コードがかなり面倒になります。この機能を自分のメソッドに強制する方法はありますか?

4

2 に答える 2

6
void MyMethod(string format, params object[] obj) {
    var formattedString = String.Format(format, obj);
    // do something with it...
}
于 2009-10-30T17:04:13.367 に答える
1

キーワードを持つメソッドにはparams、明示的な配列またはインライン配列を渡すことができます。

したがって、次のように記述できます。

public static void Write(params string[] stringsToWrite) {
    //...
    writer.WriteLine("Hello {0} {1} {2}", stringsToWrite);
    //...
}

編集あなたの質問は不明です。params配列パラメーターに値を 1 つだけ指定できるかどうかを尋ねる場合、答えは「はい」です。

例えば:

Write("myString");

.Netの多くのparamsメソッドが 1 つのパラメーターのみを受け取る個別のオーバーロードを持っている理由は、最適化のために配列を作成しないようにするためです。

于 2009-10-30T17:08:25.200 に答える