Ho una classe personalizzata Matrix
che vorrei implementare un inizializzatore di oggetto personalizzato simile a quello che un doppio [,] può usare ma non riesce a capire come implementalo.Come implementare un inizializzatore di oggetto personalizzato pulito per una classe Matrix
Idealmente mi piacerebbe averlo assomigliare a questo
var m1 = new Matrix
{
{ 1.0, 3.0, 5.0 },
{ 7.0, 1.0, 5.0 }
};
fin d'ora ho un costruttore di regolare con una firma di
public Matrix(double[,] inputArray){...}
che accetta una chiamata del genere
var m1 = new Matrix(new double[,]
{
{ 1.0, 3.0, 5.0 },
{ 7.0, 1.0, 5.0 }
});
e un intializer oggetto che accetta quanto segue utilizzando ereditando lo.210 interfaccia e attuare un vuoto pubblica Add(double[] doubleVector)
metodo
var m2 = new Matrix
{
new [] { 1.0, 3.0, 5.0 },
new [] { 7.0, 1.0, 5.0 }
};
quando provo usando l'oggetto intializer desidero ottengo un errore del compilatore di non avere un sovraccarico per Add
che prende un numero X di argomenti dove X è il numero di colonne che sto cercando di creare (es nei miei esempi forniti 3).
Come posso impostare la mia classe per prendere in un argomento come ho fornito?
imparato qualcosa che termina oggi. Grazie per l'aiuto! – PlTaylor
la classe non avrebbe bisogno di implementare IEnumerable per poterlo utilizzare? –
ma la matrice deve avere uguale lunghezza e larghezza –