params
キーワードを使用して簡単なプログラムを作成し、パラメータを取得してコンソールに書き出しました。私が欲しい/期待していることと、params
タグを持つパラメータに1つの配列を渡したときにC# documentation statesが発生するのは、配列がparams
配列の最初の要素になるということです。ここではいくつかのサンプルコードは次のとおりです。paramsキーワードは配列を単一のパラメータとして解釈し、配列の内容をすべてのパラメータとして解釈します。
public static void Main()
{
Paramtest(new object[] { "hi", "wow", 78 });
Console.ReadKey();
}
public static void Paramtest(params object[] args) {
foreach (object o in args) {
Console.WriteLine("{0} is a type of {1}.", o.ToString(), o.GetType());
}
}
私が見るべきであることを述べてコンソールへの書き込みの1行です:
:System.object[] is a type of System.object[].
私は参照を行う何が執筆の3行です
hi is a type of System.String. wow is a type of System.String. 78 is a type of System.Int32.
私は、Paramtest
を別のパラメータで配列は、Paramtest(new object[] { "hi", "wow", 78 }, String.Empty);
のように、目的の結果(空文字列)を生成するので、この問題を回避する方法の1つになるかもしれませんが、私の場合はエレガントではありません。ドキュメンテーションが言っていることから、これは起こってはならない。どのようなこの問題の回避策はありますか?
可能性のある重複した[C#のparamsは見かけコンパイラのバグ(C#5.0)](http://stackoverflow.com/questions/9709642/c-sharp-params -apparent-compiler-bug-c-5-0) –
はい、私はそれがだと思います:( 残念ながら、私の質問を投稿する前に私の研究をしているとき、私はその投稿を見ませんでした。 –