防止使用<创建帐户;0 OR >10000年

本文关键字:OR 10000年 创建 lt | 更新日期: 2023-09-27 18:02:08

我目前有一个程序,使银行帐户和存储它们,但我正试图添加代码,以防止用户设置一个帐户与负余额或余额超过10,000。

我已经声明了private decimal balance = 0;,以便将每个人的初始余额设置为0,然后他们输入他们希望存储的金额。我想做的是阻止人们用<0 OR> 10000

这是我目前看到的IF语句

public virtual bool BalanceRange(decimal amount)
        {
            if ((balance < 0) || (balance > 10000))
            {
                return false; //OR message "Amount Not Allowed";
            }
            this.balance = amount;
            return true; 
        }

IF语句的目的是检查用户希望在其银行账户中存储的金额,该数字在Main方法中输入,如下所示:

public static void Main()
        {
            CustomerAccount test = new CustomerAccount("Fred", 11000);
            Console.WriteLine(test.GetName());
            Console.WriteLine(test.GetBalance());
        }

所做的是创建一个帐户,名称为Fred,金额为11,000。我的IF语句应该拒绝创建此帐户,因为金额超过了我设置的IF语句要检查的金额(10,000),但这似乎没有发生,我不确定为什么

可能是这个原因。这是用于GetBalance()测试的类,所以我认为我的IF语句需要放在其中。

public virtual decimal GetBalance()
        {
            return this.balance;
        }

构造函数:

public interface IAccount
    {
        bool PayInFunds(decimal amount);
        bool WithdrawFunds(decimal amount);
        bool BalanceRange(decimal amount);
        decimal GetBalance();
        string RudeLetterString();
        string GetName();
        bool SetName(string inName);
    }

防止使用<创建帐户;0 OR >10000年

你在设置它之前检查余额,所以它总是0。检查通过了,然后你设置了非法号码。检查金额参数,而不是余额字段。

    public virtual bool BalanceRange(decimal amount)
    {
        if ((amount < 0) || (amount> 10000))
        {
            return false; //OR message "Amount Not Allowed";
        }
        this.balance = amount;
        return true; 
    }

恐怕我不能评论,所以以这种方式问,你甚至在哪里调用BalanceRange方法?

我希望在构造函数的某个地方也有,但是你不能调用构造函数,它会拒绝创建对象。

您可以在类中使用私有构造函数尝试这样做:

public static CustomerAccount AccountFactory(string name, int amount)
{
  if ((balance < 0) || (balance > 
    return null; //OR message "Amount Not Allowed";
  return new CustomerAccount(name, amount)
}