私の最後の質問に関連して(変数のグループを配列として渡す簡単な方法はありますか)
個々のメソッドで書き込みを行うのではなく、文字列変数をメソッドに渡してストリームに書き込もうとしていました。
params キーワードの使用は明らかに解決策ですが、それを使用すると、次のようなことはできないと思います。
Write("hello {0}",var1);
これがないと、コードがかなり面倒になります。この機能を自分のメソッドに強制する方法はありますか?
私の最後の質問に関連して(変数のグループを配列として渡す簡単な方法はありますか)
個々のメソッドで書き込みを行うのではなく、文字列変数をメソッドに渡してストリームに書き込もうとしていました。
params キーワードの使用は明らかに解決策ですが、それを使用すると、次のようなことはできないと思います。
Write("hello {0}",var1);
これがないと、コードがかなり面倒になります。この機能を自分のメソッドに強制する方法はありますか?
void MyMethod(string format, params object[] obj) {
var formattedString = String.Format(format, obj);
// do something with it...
}
キーワードを持つメソッドにはparams
、明示的な配列またはインライン配列を渡すことができます。
したがって、次のように記述できます。
public static void Write(params string[] stringsToWrite) {
//...
writer.WriteLine("Hello {0} {1} {2}", stringsToWrite);
//...
}
編集あなたの質問は不明です。params
配列パラメーターに値を 1 つだけ指定できるかどうかを尋ねる場合、答えは「はい」です。
例えば:
Write("myString");
.Netの多くのparams
メソッドが 1 つのパラメーターのみを受け取る個別のオーバーロードを持っている理由は、最適化のために配列を作成しないようにするためです。