我正在做作业,而且我被困在一个我不需要接受负面价值的房产。
我有这个属性的代码。如何设置setter不让用户设置负值?
public decimal Balance
{
get {return balance;}
private set{ if (value >= 0)
{
balance = value;
}else if (value < 0)
{
??????
}
}
}
这是我的Main()方法:
static void Main(string[] args)
{
BankAccountClass firstAccount = new BankAccountClass();
int userInputAccountNumber = int.Parse(Console.ReadLine());
firstAccount.addAccountNumber(userInputAccountNumber);
Console.WriteLine(firstAccount.AccountNumber);
}
答案 0 :(得分:6)
你应该抛出一个ArgumentOutOfRangeException:
public decimal Balance
{
get { return balance; }
private set
{
if (value < 0)
throw new ArgumentOutOfRangeException("Only positive values are allowed");
balance = value;
}
}
但默认为0或无效,也可以是一种选择,具体取决于具体要求。
答案 1 :(得分:1)
public decimal Balance
{
get {return balance;}
private set
{
if (value >= 0)
{
balance = value;
}
}
如果value小于0,则抛出任何内容,或抛出ArgumentException
答案 2 :(得分:0)
您可以从setter返回(您不需要处理它),或者如果您想处理它,则抛出异常。