如何将属性设置器限制为不接收零以下的值
本文关键字:属性 设置 | 更新日期: 2023-09-27 18:24:41
我正在做作业,遇到了一个需要设置的属性,该属性不会收到负值。
我有这个属性的代码。如何设置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);
}
您可能应该抛出ArgumentOutOfRangeException:
public decimal Balance
{
get { return balance; }
private set
{
if (value < 0)
throw new ArgumentOutOfRangeException("Only positive values are allowed");
balance = value;
}
}
但是,根据具体要求,默认为0或什么都不做也可以是一种选择。
public decimal Balance
{
get {return balance;}
private set
{
if (value >= 0)
{
balance = value;
}
}
如果值小于0,则不执行任何操作,或者抛出ArgumentException
您可以从setter返回(不需要处理它),或者如果您想处理它,则抛出异常。