Вот структура, которую я пытаюсь написать:
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; }
}
Это приводит к следующим ошибкам компиляции:
Объект 'this' нельзя использовать прежде чем все его поля будут назначены до
Поле "AttackTraits.probability" должно быть полностью назначены до того, как управление будет возвращается вызывающему абоненту
Поддерживающее поле автоматически реализованное имущество "AttackTraits.Damage" должен быть полностью назначается до того, как управление возвращается вызывающего абонента. Рассмотрите возможность вызова конструктор по умолчанию из конструктора инициализатор.
Поддерживающее поле автоматически реализованное имущество "AttackTraits.Distance" должен быть полностью назначается до того, как управление возвращается вызывающего абонента. Рассмотрите возможность вызова конструктор по умолчанию из конструктора инициализатор.
Что я делаю неправильно?