Bevorzugte Weg, um die Standardwerte der null-Eigenschaften?

Ich bin in einem dilemma. Die (reduzierte) Aufgabe ist die Umgestaltung der folgende Daten der Inhaber Klasse

class Stuff
{
  public String SomeInfo { get; set; }
}

um die Nachfrage zu befriedigen, dass null darf nicht zurückgegeben werden. Ich denke, der kann zwei Wege, das zu erreichen und nach tiefer überlegung von 15 Minuten, ich kann einfach nicht entscheiden, welche zu bevorzugen ist.

Ansatz Konstruktor.

class Stuff
{
  public String SomeInfo { get; set; }
  public Stuff() { SomeInfo = String.Empty; }
}

Ansatz von Eigentum.

class Stuff
{
  private String _SomeInfo;
  public String SomeInfo 
  { 
    get { return _SomeInfo ?? String.Empty; }
    set { _SomeInfo = value; }
  }
}

Beachten Sie, dass die Erstellung der Zeug Instanzen getan werden könnte, verwenden Sie den Konstruktor sowie die Initialisierung, wenn das von Bedeutung. Soweit ich informiert bin, wird es keine anderen Einschränkungen (aber Sie wissen, wie die Kunden-Spezifikationen spiegeln nicht immer die Realität).

  • Gut - Ihre erste option, die nicht Ihren Anforderungen entsprechen - wie kann ich trotzdem setzen Sie die Eigenschaft auf null. #2 ist die einzige wirkliche Wahl.
  • Wenn durch die Initialisierung du meinst eine form der Deserialisierung bewusst sein, dass einige Umsetzungen nicht ausführen Konstruktor-code.
  • Ein weiterer kleiner Geschmack auf #2 könnte der überprüfung von Eingaben bei der Einstellung der Wert anstelle der beim abrufen. Wenn Sie finden, Sie abrufen null/Empty Werte sehr oft, anstatt zu tun, die Prüfung einmal/selten auch bei der Einstellung bevorzugt werden. EDIT: Beachten Sie, dass hier davon ausgegangen, du bist wachsam genug, nicht um das sichern-Feld auf null.
  • Gute Punkte. Danke!
Schreibe einen Kommentar