検索しても答えが見つかりませんでしたが、正しい方法で質問していないのかもしれません。3D行列(1D-2Dジャグ配列の形式)を取り込んで要素に対して関数を実行する行列タイプの関数がたくさんあるプログラムがあります。ただし、同じ関数を使用する必要がありますが、引数の型が異なります:int [] [、]とfloat [] [、]とdouble [] [、]。
これまで同じメソッドを書き直してタイプを変更してきましたが、これらがたくさんあるので、「再入力」されたメソッドを書き直し続けるのは本当に苦痛です。
private float SomeFunctionA(float[][,] d)
{
float sum = 0;
for (int k = 0; k < d.GetLength(0); k++)
for (int j = 0; j < d[0].GetLength(1); j++)
for (int i = 0; i < d[0].GetLength(0); i++)
sum += d[k][i,j];
return SomeFunctionB(sum);
}
private float SomeFunctionA(double[][,] d)
{
double sum = 0;
for (int k = 0; k < d.GetLength(0); k++)
for (int j = 0; j < d[0].GetLength(1); j++)
for (int i = 0; i < d[0].GetLength(0); i++)
sum += d[k][i,j];
return SomeFunctionB(sum);
}
さまざまなタイプを許可する簡単な方法はありますか?機能を備えた汎用のメインメソッド(つまり、3つのforループやその他の本文コード)と、異なるタイプを取り、それぞれの場合に汎用メソッドを呼び出すヘルパーメソッドを作成する方法があれば素晴らしいと思います。
皆さんありがとう。