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

如何在C#中结合用户输入调用多方法实现姓名输入与展示?

问题分析与修复方案

代码存在的问题

  • Main方法里只创建了Employee实例,但没调用GetNames()方法触发用户输入,导致FirstName始终为空,没有输出内容。
  • GetNames()中使用Console.ReadKey()获取输入是错误的,该方法返回的是按键信息对象,转换成字符串后无法得到用户输入的文本,应该用Console.ReadLine()读取完整输入。
  • 构造函数里的firstName = this.firstName是无效代码,没有任何实际作用,属于冗余内容。
  • 定义的Display静态方法从未被调用,没有发挥预期功能。

修正后的代码

public class Employee
{
    private string firstName;

    public string FirstName
    {
        get { return firstName; }
        set { firstName = value; }
    }

    public void GetNames()
    {
        Console.WriteLine("Please enter your first name:");
        firstName = Console.ReadLine();
    }

    public static void Display(string firstName)
    {
        Console.WriteLine("Your first name is: " + firstName);
    }
}

public class Program
{
    static void Main(string[] args)
    {
        Employee employee = new Employee();
        // 先调用方法获取用户输入
        employee.GetNames();
        // 直接输出属性值
        Console.WriteLine(employee.FirstName);
        // 或者调用静态Display方法输出
        Employee.Display(employee.FirstName);
    }
}

修正说明

  1. 在Main方法中先执行employee.GetNames(),触发用户输入流程,将输入的姓名赋值给firstName字段。
  2. 替换Convert.ToString(Console.ReadKey())为Console.ReadLine(),正确读取用户输入的完整字符串。
  3. 删除无效的构造函数代码,简化类结构。
  4. 保留Display方法并演示调用方式,你可以根据需求选择直接输出属性或使用静态方法输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:56:30