我有一个问题。如何验证我的物业价格是正数,否则抛出新的例外。
我已经尝试过这种方式,但仍然无效:
public decimal Price
{
get
{
{ return this.price; }
}
set
{
if (this.price < 0)
{
throw new ArgumentException("The price should be positive!");
}
else
{
this.price = value;
}
}
}
答案 0 :(得分:4)
现在我看到,您正在检查属性的setter中的后备字段,该字段具有最后一个值或默认值0
(如果尚未初始化)。改为使用value
:
private decimal price;
public decimal Price
{
get
{
{ return this.price; }
}
set
{
if (value < 0)
{
throw new ArgumentException("The price should be positive!");
}
else
{
this.price = value;
}
}
}
答案 1 :(得分:2)
部分this.price
是当前值。您需要使用value
变量检查设置器中传递的值。
public decimal Price
{
get
{
{ return this.price; }
}
set
{
if (value < 0)
{
throw new ArgumentException("The price should be positive!");
}
else
{
this.price = value;
}
}
}