Matrix
double[,] が使用できるものと同様のカスタム オブジェクト初期化子を実装したい カスタム クラスがありますが、実装方法がわかりません。
理想的には、私はそれがこのようになりたいと思っています
var m1 = new Matrix
{
{ 1.0, 3.0, 5.0 },
{ 7.0, 1.0, 5.0 }
};
今のところ、署名付きの通常のコンストラクターがあります
public Matrix(double[,] inputArray){...}
このような呼び出しを受け入れる
var m1 = new Matrix(new double[,]
{
{ 1.0, 3.0, 5.0 },
{ 7.0, 1.0, 5.0 }
});
IEnumerable<double[]>
および、インターフェイスを継承し、public voidAdd(double[] doubleVector)
メソッドを実装することにより、次の使用を受け入れるオブジェクト初期化子
var m2 = new Matrix
{
new [] { 1.0, 3.0, 5.0 },
new [] { 7.0, 1.0, 5.0 }
};
Add
オブジェクト初期化子を使用しようとすると、X個の引数を取る ためのオーバーロードがないというコンパイラエラーが発生します。ここで、Xは作成しようとしている列の数です(つまり、提供された例3)。
提供したような引数を受け取るようにクラスを設定するにはどうすればよいですか?