如何使用字符串和 Console.ReadLine() 创建新对象

问题描述 投票:0回答:3

我想做的是制作一个银行申请,一开始它会询问您是否要创建储蓄帐户或活期帐户,然后要求您输入所选帐户的名称。我试图让程序创建一个具有我写下的名称的对象。它无法识别我给它们起的名字。

class Program
{
    static void Main()
    {
        Console.WriteLine("Enter 's' if you want a savings account. Enter 
        'c' if you want current account.");

        string which = Console.ReadLine();

        if (which == "s")
        {
            Console.WriteLine("Enter Name");
            string name = Console.ReadLine();
            Savingacc name;
            name = new Savingacc();
            name.mainmenu();                
        }
        else if (which == "c")
        {
            Console.WriteLine("Enter Name");
            string name = Console.ReadLine();
            Currentacc name;
            name = new Currentacc();
            name.mainmenu();
        }
    }
}
c# .net visual-studio console
3个回答
1
投票

您不应该尝试将帐户的变量名称设为他们输入的名称。您应该在包含帐户名称的帐户类中创建一个属性。与这个非常非常基本的示例类似:

class Program
{
    static void Main(string[] args)
    {
        var name = "Bob";
        var newAccount = new Account();
        newAccount.AccountName = name;
        Console.WriteLine(name);
        Console.WriteLine(newAccount.AccountName);
    }
}

public class Account
{
    public string AccountName { get; set; }
}

1
投票

您定义了两个具有相同名称的不同变量,请重命名其中一个。

    string which = Console.ReadLine();

    if (which == "s")
    {
        Console.WriteLine("Enter Name");
        string name = Console.ReadLine();
        Savingacc savingAccountObj;
        savingAccountObj = new Savingacc();
        savingAccountObj.mainmenu();                
    }
    else if (which == "c")
    {
        Console.WriteLine("Enter Name");
        string name = Console.ReadLine();
        Currentacc curAccountObj;
        curAccountObj = new Currentacc();
        curAccountObj.mainmenu();
    }

ifelse 块中,您已从用户那里获得了帐户名称,但您尚未使用它。


0
投票

我认为您已经编码了 Savingacc (-->SavingAcc) 和 Currentacc (-->CurrentAcc)。 在这种情况下,我建议您在使用新的 .

覆盖名为“name”的变量时检查代码。
Console.WriteLine("Enter Name");
string name = Console.ReadLine();
Savingacc name;
name = new Savingacc();

将其视为此建议...

class Program {
    static void Main() {
        Console.WriteLine("Enter 's' if you want a savings account. Enter 'c' if you want current account.");
        string which = Console.ReadLine();

        Console.WriteLine("Enter Name");
        string name = Console.ReadLine();

        if (which == "s") SavingAcc account = new SavingAcc(name);
        if (which == "c") CurrentAcc account = new CurrentAcc(name);

        if (which == "s" || which == "c") account.mainMenu();
    }
}

此外,考虑到如果用户选择不同的选项,可能无法创建帐户,因此在调用其方法 mainMenu 之前包括一个测试。

© www.soinside.com 2019 - 2024. All rights reserved.