Al configurar algunas propiedades de tipo de referencia para un proyecto en el que estoy trabajando, encontré algunas propiedades que debían inicializarse adecuadamente para ser utilizadas y nunca deberían ser nulas. He visto algunas maneras de manejar esto y realmente no puedo determinar si hay algún inconveniente importante en alguna de las principales formas en que he visto manejar esto. Me gustaría obtener la opinión de la comunidad sobre la mejor manera de manejar esto y cuáles podrían ser los posibles inconvenientes de cada método.Manejo de C# Propiedades que no deberían ser nulas
Dada una clase simple, he visto varias formas de manejar asegurándose de que una propiedad no tiene una versión nula de esta clase en una propiedad
public class MyClass
{
//Some collection of code
}
Opción 1 - inicializar el almacén de respaldo
public class OtherClass1
{
private MyClass _mC = new MyClass();
public MyClass MC
{
get { return _mC; }
set { _mC = value; }
}
}
Opción 2 - inicializar la propiedad en el constructor
public class OtherClass2
{
public MyClass MC { get; set; }
public OtherClass2()
{
MC = new MyClass();
}
}
Opti el 3 - Manejar la inicialización, según sea necesario en el Getter
public class OtherClass3
{
private MyClass _mC;
public MyClass MC
{
get
{
if (_mC == null)
_mC = new MyClass();
return _mC;
}
set { _mC = value; }
}
}
Estoy seguro de que hay otras maneras, pero estos son los que vienen a la mente y que he visto. Principalmente estoy tratando de determinar si hay una mejor práctica bien establecida sobre esto o si hay una preocupación específica con cualquiera de los anteriores.
Saludos,
Steve
Aquí hay una Sintaxis "get" más compacta para la opción 3: 'get {return _mC ?? (_mC = new MyClass); } ' – Mas