Beim Einrichten einiger Eigenschaften des Referenztyps für ein Projekt, an dem ich gerade arbeite, kam ich über einige Eigenschaften, die ordnungsgemäß initialisiert werden mussten, und sollte nie null sein. Ich habe einige Möglichkeiten gesehen, damit umzugehen, und kann nicht wirklich feststellen, ob es irgendwelche wesentlichen Nachteile bei den wichtigsten Möglichkeiten gibt, mit denen ich dies zu tun habe. Ich würde gerne die Meinung der Community über die beste Art und Weise, wie man damit umgehen soll, und welche möglichen Nachteile die einzelnen Methoden haben könnten, bekommen.Umgang mit C# -Eigenschaften, die nicht null sein sollten
eine einfache Klasse Da habe ich mehrere Möglichkeiten gesehen eine Eigenschaft, nie eine Null-Version dieser Klasse in einer Eigenschaft
public class MyClass
{
//Some collection of code
}
Option 1 dafür, dass handhaben muss - Initialisieren der Sicherungsspeicher
public class OtherClass1
{
private MyClass _mC = new MyClass();
public MyClass MC
{
get { return _mC; }
set { _mC = value; }
}
}
Option 2 - Initialisieren Sie die Eigenschaft im Konstruktor
public class OtherClass2
{
public MyClass MC { get; set; }
public OtherClass2()
{
MC = new MyClass();
}
}
Opti 3 - Griff Initialisierung im Getter benötigt als
public class OtherClass3
{
private MyClass _mC;
public MyClass MC
{
get
{
if (_mC == null)
_mC = new MyClass();
return _mC;
}
set { _mC = value; }
}
}
Ich bin sicher, es gibt andere Möglichkeiten, aber diese sind diejenigen, die in den Sinn kommen, und ich habe gesehen. Ich versuche hauptsächlich zu bestimmen, ob es eine gut etablierte Best Practice zu diesem Thema gibt oder ob es ein bestimmtes Problem mit einem der oben genannten Punkte gibt.
Cheers,
Steve
Hier ist ein kompaktere "Get" -Syntax für Option 3: 'get {return _mC ?? (_mC = neue MyClass); } ' – Mas