【发布时间】:2011-02-01 20:38:24
【问题描述】:
这是我正在尝试编写的结构:
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' 必须完全 在控制权返回之前分配 呼叫者,召集者。考虑调用 来自构造函数的默认构造函数 初始化器。
我做错了什么?
【问题讨论】:
标签: c# constructor struct