在其他方法中调用参数化方法

时间:2016-04-04 14:31:34

标签: c#

我不知道我是否选择了正确的标题,但我希望我有。

我目前正在尝试更好地理解C#中的方法,并且这样做我认为我会做一个简单的BankAccount示例。

所以,我所拥有的是:

  1. 我有三种方法:
    • 一种“存款”的方法。
    • 一种“取钱”的方法。
    • 打印所有内容的方法(名称,余额)。
  2. class BankAccount
    {
        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }
        private string _Name;
    
        public int Balance
        {
            get { return _Balance; }
            set { _Balance = value; }
        }
        private int _Balance;
    
        public BankAccount(string name)
        {
            Name = name;
            Balance = 1000;
        }
    
        // deposit money
        public int Deposit(int balance)  
        {
            Balance += balance;
    
            return Balance;
        }
    
        // withdraw money
        public int WithDraw(int balance) 
        {
            Balance -= balance;
    
            return Balance;
        }
    
        // print to console
        public void Print()
        {
            Console.WriteLine("Owner: " + Name
                 + "\nYour current balance is: $" + Balance);             
        }
    }
    

    我想做的是:

      

    如果我在Main中调用“deposit”并传递一个值,我希望print方法向我显示金额(同样适用于“撤回”)。

    我如何实现这一目标?我已经尝试过一些有争议的陈述,但我不知道如何使用具有参数的方法正确地做到这一点?

    我希望有人可以解释我的这个问题。

1 个答案:

答案 0 :(得分:2)

你可以做的是重载方法做多个事情,例如你可以创建一个带有int(平衡被减去或添加)和string说明哪个的重载行动发生,然后您可以在代码中使用此方法以及已存在的

public void Print(int balance, string action)
{
    Console.WriteLine("Owner: " + Name
         + "\nYour current balance is: $" + Balance
         + "and you " + action + ": $" + balance);
}

可以将字符串action作为"withdrew""deposited"传递,具体取决于调用它的方法。

使用此重载允许您输出原始Print方法,如果他们想知道他们的余额但从未撤回或存放,新版本全部取决于您传递的参数

有关重载的详细信息,请参阅this MSDN页面

示例用法:

public int Deposit(int balance)  
{
    Balance += balance;
    Print(balance, "deposited"); //prints current balance AND action that was completed
    return Balance;
}

public void ShowBalance()
{
    Print(); //Just prints current balance
}