You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用字符串与Console.ReadLine()创建指定名称的银行账户对象?

问题分析与解决方案

嘿,我一眼就瞅出你代码里的两个核心问题啦,这就是程序没法识别你输入名称的原因:

1. 变量命名冲突

你在同一个代码块里先定义了string name,紧接着又用name作为账户对象的变量名(比如Savingacc name;),这在C#里绝对行不通——同一个作用域下不能有同名变量,编译器直接就懵了,根本没法正确处理你输入的名称。

2. 没有将输入的名称传递给账户对象

你创建Savingacc和Currentacc实例的时候,用的是无参构造函数new Savingacc(),但完全没把用户输入的name传进去,账户对象根本没拿到你输入的名称呀!

修正后的完整代码示例

首先,咱们得给账户类添加带名称参数的构造函数,确保能接收并存储用户输入的名称:

// 定义储蓄账户类,添加构造函数和Name属性
public class Savingacc
{
    public string Name { get; set; }

    // 带名称参数的构造函数
    public Savingacc(string accountName)
    {
        Name = accountName;
    }

    public void mainmenu()
    {
        // 这里可以使用Name属性,比如打印欢迎信息
        Console.WriteLine($"欢迎,{Name}!这是你的储蓄账户菜单");
        // 其他菜单逻辑...
    }
}

// 同理定义活期账户类
public class Currentacc
{
    public string Name { get; set; }

    public Currentacc(string accountName)
    {
        Name = accountName;
    }

    public void mainmenu()
    {
        Console.WriteLine($"欢迎,{Name}!这是你的活期账户菜单");
        // 其他菜单逻辑...
    }
}

// 修改后的Main方法
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 savingsAcc = new Savingacc(name); 
            savingsAcc.mainmenu(); 
        } 
        else if (which == "c") 
        { 
            Console.WriteLine("Enter Name"); 
            string name = Console.ReadLine(); 
            // 同样换变量名+传递名称参数
            Currentacc currentAcc = new Currentacc(name); 
            currentAcc.mainmenu(); 
        } 
        else
        {
            Console.WriteLine("输入无效,请输入's'或'c'");
        }
    } 
}

关键修改点说明

  • 给Savingacc和Currentacc类加了带名称参数的构造函数,创建对象时就能把用户输入的名称传递进去,存在类的Name属性里。
  • 把账户对象的变量名改成了savingsAcc和currentAcc,彻底避免了和输入的string name重名的问题。
  • 在mainmenu方法里可以直接调用Name属性,这样就能正常显示用户输入的名称啦。

这样改完之后,程序就能正确接收你输入的名称,并传递给对应的账户对象,完美解决你的问题~

内容的提问来源于stack exchange,提问作者user9715543

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:59:43