SORU
28 Mart 2010, Pazar


Yapı kurucu: "alanları kontrol çağırana döndürülür önce tam olarak verilmelidir.&"

Burada yazmaya çalışıyorum bir referans

  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; }
        }

Bu derleme aşağıdaki hata neden olur:

'Bu' nesnesi kullanılamaz tüm alanları atanmadan önce için

Alan 'AttackTraits.'gereken olasılık kontrol önce tam olarak atanacak çağırana döner

Otomatik yedekleme alanı uygulanan bir özellik 'AttackTraits.Hasar olmalı tam olarak kontrol önce atanan döndürülür arayanın. Arama düşünün varsayılan oluşturucu oluşturucu başlatıcı.

Otomatik yedekleme alanı uygulanan bir özellik 'AttackTraits.Mesafe olmalı tam olarak kontrol önce atanan döndürülür arayanın. Arama düşünün varsayılan oluşturucu oluşturucu başlatıcı.

Neyi yanlış yapıyorum?

CEVAP
11 Mart 2011, Cuma


Eğer otomatik bir özelliği olan bir yapı bu hata görürseniz, sadece parametresiz altında : this() örnek yaparak parametreli senin bir müteahhit arayın:

struct MyStruct
{
  public int SomeProp { get; set; }

  public MyStruct(int someVal) : this()
  {
     this.SomeProp = someVal;
  }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • Kiddyzuzaa

    Kiddyzuzaa

    25 ŞUBAT 2014