Tengo un struct
que contiene dos listas:¿Hay alguna forma de inicializar miembros de una estructura sin usar un constructor?
struct MonthData
{
public List<DataRow> Frontline;
public List<DataRow> Leadership;
}
Sin embargo, quiero inicializar tanto cuando se crea la estructura. Si trato:
struct MonthData
{
public List<DataRow> Frontline = new List<DataRow>();
public List<DataRow> Leadership = new List<DataRow>();
}
Entonces me sale:
Error 23 'MonthData.Frontline': cannot have instance field initializers in structs
...
Desde estructuras no pueden tener constructores sin parámetros, que no puedo acaba de establecer esto en un constructor tampoco. Hasta el momento, sólo puedo ver las siguientes opciones:
- inicializar las propiedades cuando se crea una instancia de MonthData
- utilizar una clase en lugar de una estructura
- Crear un constructor con un parámetro y el uso que
- Hacer getters y setters para las propiedades que los inicializan perezosamente.
¿Cuál es el método recomendado para esto? En este momento, estoy pensando que hacer de esto una clase es la mejor idea.
Haz que sea una clase. Una vez que agrega tipos de referencia a una estructura, ya no es un tipo de valor. – drdwilcox
¿Está realmente bien hacer que sea un tipo de referencia (clase) frente a un tipo de valor (struct)? Si es así, adelante y conviértalo en una clase. – BoltClock
Sí, no tiene sentido que este tipo sea una estructura. –