オブジェクトの配列、配列の内容の型をジェネリックとして取得し、各型を配信されたジェネリックにキャストしようとするメソッドを作成しました。
public static void GetMultipleObjectsFromParameters<T, U>(
object parameterArray, out T parameter1, out U parameter2)
{
parameter1 = default(T);
parameter2 = default(U);
try
{
object[] arr = parameterArray as object[];
if (arr == null)
{
Debug.WriteLine("array not valid");
return;
}
if (arr.Length != 2)
{
Debug.WriteLine("arr.Length != 2");
return;
}
parameter1 = (T)arr[0];
parameter2 = (U)arr[1];
}
catch (Exception ex)
{
Debug.Write(ex);
}
}
このメソッドは、BackgroundWorker を使用していて、異なる型の複数の引数を渡したい場合 (たとえば、最初のパラメーターを文字列、2 番目のパラメーターを整数など) に非常に役立つと考えました。
ここで、パラメーターの固定サイズを強制せずにこのメソッドを記述する方法があるかどうか疑問に思いました。これにより、パラメーターのカウントごとにこのようなメソッドを作成できなくなります。
質問がわかりやすかったことを願っています。簡単なアプローチはありますか?ご協力ありがとうございました。