Stringa, Casting implicito e la leggibilità degli assegnamenti

A volte i comuni costruttori di classe potrebbero risultare limitativi ai fini della comprensione dell'inizializzazione di istanze complesse. In queti giorni stavo - per puro diletto - rimettendo mano ad alcune mie librerie di Math nelle quali implementavo esempi di calcoli matriciali... disegnare entità matematiche a volte è un buon esercizio di modellazione di oggetti. Le matrici sono fondamentalmente classi che incapsulano array multidimensionali di numeri. Nella fase di unit test è utile istanziare staticamente matrici: come potrebbe essere utile inizializzarle in modo comprensibile alla lettura? Domanda che i più catalogheranno come banale e/o superflua e/o da perditempo :-p

La mia idea era arrivare a poter scrivere qualcosa come questa che segue:

Matrix matrix =
@"
    1,  2,  3
    2,  3,  4
    3,  4,  5
";

Per fare quanto sopra occorre giocare con il casting implicito della stringa. Ecco in che modo:

class Matrix
{

        //...

        public static Matrix Parse(string s)
        {
            Matrix matrix;
            string text;

            StringReader r = new StringReader(s);
            while ((text = r.ReadLine()) != null)
            {
              //Lettura stringa e trasformazione in Matrix.
              //L'implementazione del parsing dettagliato e la trasformazione effettiva 
              //è omesso perchè ininfluente ai fini dell'argomento del post.
            }
            return matrix;
        }
         
        public static implicit operator Matrix(string s)
        {
            return Parse(s);
        }
      
        //...
}
«marzo»
domlunmarmergiovensab
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678