基本的value的问题
进行.NET类库引用的时候
在被引用的cat:animal 类中设置了如下属性:
private int _weight;
public int Weight
{
get
{
return this._weight ;
}
set
{
if(this._weight <=0)
Console .WriteLine ("cow {0} is eating", this.Name);
this._weight = value;
}
}
在主函数中创建对象后,无论设置acat.Weight =10; acat.Weight =-10;
执行时一直是会显示The cat's weight can't less than zero!
为什么?
在给'_weight'设置初值后无论输入正负值都根据初值判断是否显示cow {0} is eating 与新设置的值无关,为什么?是创建对象时构造函数执行了默认值,设置数值时没有执行?
[b][size=18px]还有谁可以解释下set语句中value执行过程,是在搞不懂是先用value赋值还是先判断条件又或是先把默认值赋给Weight[/size][/b]
------解决方案-------------------- int 初始化是 0
------解决方案-------------------- 是在哪里给weight赋值的?
------解决方案--------------------
C# code
private int _weight;
public int Weight
{
get
{
return this._weight;
}
set
{
if (value <= 0)
Console.WriteLine("cow {0} is eating", this.Name);
else
this._weight = value;
}
}
------解决方案-------------------- int 类型的变量需要初始化
------解决方案-------------------- 初始化下int类型的属性 private int _weight=0; if(this._weight <=0) { Console .WriteLine ( "cow {0} is eating ", this.Name); } else { this._weight = value; }
------解决方案-------------------- 同问啊,if(this.weight<=0)这里的weight用的是初始默认值而不是输入的值吗
------解决方案-------------------- 探讨 同问啊,if(this.weight<=0)这里的weight用的是初始默认值而不是输入的值吗