我正在尝试创建一个可用作银行帐户的程序。 4种方法,包括存款,提款,打印和创建。当我尝试在Program.cs
中创建切换循环时,遇到“创建”问题:我不知道如何使用我创建的方法(我的切换循环也拒绝工作)。>
我尝试从切换循环切换到一段时间以解决循环问题,尽管我没错,但我仍然不知道如何使用该方法。我正在从一个应该有答案的课程开始工作,但是当我尝试该课程时,它只是无效。
这是该方法的外观:
private static void Create(string[] cmdArgs, Dictionary<int, BankAccount> accounts)
{
var id = int.Parse(cmdArgs[1]);
if (accounts.ContainsKey(id))
{
Console.WriteLine("Account already exists.");
}
else
{
var acc = new BankAccount();
acc.ID = id;
accounts.Add(id, acc);
}
}
这是我尝试实现的方法:
string command;
var cmdArgs = command.Split();
var cmdType = cmdArgs[0];
switch (cmdType)
{
case "Create":
Create(cmdArgs, accounts);
break;
}
这就是我的课程的显示方式(本课程中的方法也相同)
var cmdArgs = command.Split();
var cmdType = cmdArgs[0];
switch (cmdType)
{
case "Create":
Create(cmdArgs, accounts);
break;
case "Deposit":
Deposit(cmdArgs, accounts);
break;
case "Withdraw":
break;
}
我说在这种情况下不存在“帐户”。
我希望我的方法可以创建一个具有ID和余额的银行帐户,但是该程序甚至无法启动。
答案 0 :(得分:0)
因为“ a 个帐户”和“ A 个帐户”是不同的字符串。您应该将小写或大写应用于cmdArgs [0],并使用具有小写\大写值的用例。
我更喜欢将enum与自定义TypeConverter一起使用来完成相同的任务。
答案 1 :(得分:0)
据我所知,您的方法有两个问题。首先,您永远不要声明accounts
变量。就您的程序而言,它不存在,因此会出现错误。
另一件事是您似乎从未为command
分配任何内容,因此即使您添加了accounts
,您仍然会遇到问题,因为您无法分割一个不存在。
这是您的代码的样子,声明并初始化了command
和accounts
。
Dictionary<int, BankAccount> accounts = new Dictionary<int, BankAccount>();
// In reality you'd get this string from elsewhere, like a Console.ReadLine or such
string command = "Create 123";
var cmdArgs = command.Split();
var cmdType = cmdArgs[0];
switch (cmdType)
{
case "Create":
Create(cmdArgs, accounts);
break;
}