Auto-Eigenschaften und Strukturen

Ich wundere mich über die folgende C#-code:

struct Structure
{
    public Structure(int a, int b)
    {
        PropertyA = a;
        PropertyB = b;
    }
    public int PropertyA { get; set; }
    public int PropertyB { get; set; }
}

Es ist nicht das kompilieren mit einem Fehler "Der" this "- Objekt kann nicht benutzt werden, bevor alle seine Felder zugewiesen sind". Für die analoge Klasse kompilieren ohne Probleme.

Es gemacht werden kann die Arbeit durch die Umgestaltung der folgenden:

struct Structure
{
    private int _propertyA;
    private int _propertyB;

    public Structure(int a, int b)
    {
        _propertyA = a;
        _propertyB = b;
    }

    public int PropertyA
    {
        get { return _propertyA; }
        set { _propertyA = value; }
    }

    public int PropertyB
    {
        get { return _propertyB; }
        set { _propertyB = value; }
    }
}

Aber, ich dachte, dass der springende Punkt bei der Einführung von auto-Eigenschaften auf die C# - war zu vermeiden, schriftlich später-code. Bedeutet das, dass auto-Eigenschaften sind nicht relevant für die Strukturen?

  • Welche version von .Netz verwenden Sie?
  • Jedes mal, wenn Sie schreiben eine veränderliche Struktur, weint jemand
  • es wird nicht egal... das Verhalten ist das gleiche auf jedem; das ist ein C# - 3.0-compiler-Funktion und das "fix" ist, wie Stefan pro
  • mögliche Duplikate von Automatische Eigenschaften und Strukturen nicht Mischen?
  • Hinweis: dies ist nicht mehr ein Problem in C# 6
InformationsquelleAutor Peter17 | 2011-02-17
Schreibe einen Kommentar