Sto avendo una classe .Net che ha 10 proprietà come di seguito indicate: [i tipi di dati della singola proprietà sono solo un segnaposto qui e può essere qualsiasi cosa, da un tipo primitivo a un oggetto a un elenco di oggetti]
class MyClass
{
internal int Property1{Get;Set;}
internal string Property2{Get;Set;}
internal Myclass2 Property3{Get;Set;}
internal MyAnotherClass Property4{Get;Set;}
internal int Property5{Get;Set;}
internal int Property6{Get;Set;}
internal List<string> Property7{Get;Set;}
internal int Property8{Get;Set;}
internal MyThirdClass Property9{Get;Set;}
internal int Property10{Get;Set;}
}
Lo scopo di questa classe è di conservare solo i dati e questa classe non avrà alcun comportamento di funzione [simile alle classi POCO]. Ora sto cercando di capire qui, come dovrei creare un costruttore parametrico nella classe e passargli tutti i valori per impostare queste proprietà o dovrei usare il Collection Initializer per impostare queste proprietà.
In tutti i casi, tutte le proprietà dovrebbero essere impostate in modo tale che non vi sia alcuna possibilità di impostare proprietà selettive.
Se procedo con l'approccio dell'utilizzo del costruttore, creo i membri privati per ciascuna di queste proprietà e li uso all'interno del costruttore per assegnargli i rispettivi valori. Questo eviterà di chiamare 10 metodi Setter solo per creare un oggetto di MyClass, ma creerà un costruttore che accetta 10 parametri.
Esiste una documentazione che spiega in quale caso si consiglia di utilizzare il costruttore anziché Collection Initializer e Vise a versa? Personalmente preferisco la creazione di Costruttore.