Struct-Konstruktor: "Felder müssen vollständig zugewiesen werden, bevor die Steuerung an den Aufrufer zurückgegeben wird."

Hier ist eine Struktur, die ich zu schreiben versuche:

  public struct AttackTraits
        {
            public AttackTraits(double probability, int damage, float distance)
            {
                Probability = probability;
                Distance = distance;
                Damage = damage;
            }

            private double probability;
            public double Probability
            {
                get
                {
                    return probability;
                }
                set
                {
                    if (value > 1 || value < 0)
                    {
                        throw new ArgumentOutOfRangeException("Probability values must be in the range [0, 1]");
                    }
                    probability = value;
                }
            }

            public int Damage { get; set; }

            public float Distance { get; set; }
        }

Dies führt zu folgenden Kompilierungsfehlern:

Das 'this'-Objekt kann nicht verwendet werden, bevor nicht alle Felder zugewiesen wurden

Das Feld 'AttackTraits.probability' muss vollständig zugewiesen sein, bevor die Steuerung an den Aufrufer zurückgegeben wird

Das Hintergrundfeld für die automatisch implementierte Eigenschaft 'AttackTraits.Damage' muss vollständig zugewiesen werden, bevor die Steuerung an den Aufrufer zurückgegeben wird. Rufen Sie den Standardkonstruktor über einen Konstruktorinitialisierer auf.

Das Hintergrundfeld für die automatisch implementierte Eigenschaft 'AttackTraits.Distance' muss vollständig zugewiesen werden, bevor die Steuerung an den Aufrufer zurückgegeben wird. Rufen Sie den Standardkonstruktor über einen Konstruktorinitialisierer auf.

Was mache ich falsch?