如何在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); } }
修正说明
- 在Main方法中先执行
employee.GetNames(),触发用户输入流程,将输入的姓名赋值给firstName字段。 - 替换
Convert.ToString(Console.ReadKey())为Console.ReadLine(),正确读取用户输入的完整字符串。 - 删除无效的构造函数代码,简化类结构。
- 保留
Display方法并演示调用方式,你可以根据需求选择直接输出属性或使用静态方法输出。
内容的提问来源于stack exchange,提问作者ronalddonaldronald
相关产品推荐
相关产品推荐

