我不知道我是否选择了正确的标题,但我希望我有。
我目前正在尝试更好地理解C#中的方法,并且这样做我认为我会做一个简单的BankAccount
示例。
所以,我所拥有的是:
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方法向我显示金额(同样适用于“撤回”)。
我如何实现这一目标?我已经尝试过一些有争议的陈述,但我不知道如何使用具有参数的方法正确地做到这一点?
我希望有人可以解释我的这个问题。
答案 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
}