如何从 c# 控制台应用程序中的用户输入创建多个对象?

Posted

技术标签:

【中文标题】如何从 c# 控制台应用程序中的用户输入创建多个对象?【英文标题】:How to create more than one object from user input in c# console app? 【发布时间】:2020-06-23 08:16:52 【问题描述】:

在类文件中:

 class Employee 
   //PROPS
   public string Name get; set;
   public int Id get; set;
   //CONST.
   public Employee (string name, int id)
      Name = name;
      Id = id;
   

在方法类中(或在 Main() 中):

public void NewEmployee(string name, int id)

   Console.Write("ENTER NEW NAME: ");
   string new_employee = Console.ReadLine();
   Console.Write("ENTER ID: ");
   int employee_id = Console.ReadLine();

   Employee e = new Employee(new_employee, employee_id);

现在它只创建了一个我称之为“e”的对象。但是如何让用户一个接一个地创建多个对象呢?

【问题讨论】:

循环调用你的NewEmployee- 方法?顺便说一句:这个对象实际上并没有被称为e,这只是对该对象的引用的名称。没有对象名称之类的东西,除非您的类有一些名为 Name 的字段或属性。 你想对这个对象做什么?目前你只是在离开NewEmployee-方法后把它扔掉。我想你想把它存储在某个地方,例如在列表或其他任何内容中。在这种情况下,您应该从您的方法中返回该新对象。 【参考方案1】:

我可能会按照以下方式做一些事情:

   List<Employee> employees = new List<Employee>();

   while (true) 
       Console.Write("ENTER NEW NAME: ");
       string new_employee = Console.ReadLine();
       if (new_employee == "")
           break;
       Console.Write("ENTER ID: ");
       int employee_id = Console.ReadLine();
       Employee e = new Employee(new_employee, employee_id);
       employees.Add(e);
    
   

这会将新员工添加到列表中,直到名称出现空行。

【讨论】:

非常感谢。我是初学者,请见谅。如果我现在想从某个对象中检索数据怎么办,我应该从列表中而不是从我的“e”obj 中进行吗? 如果是这样,为什么首先使用 obj 呢?为什么不将用户输入直接插入到 List 中? 您需要了解的是,“e”只是一个名称,我使用它的唯一原因是让它更像您所写的。在这里完全没有区别。 “e = 新员工();员工。添加(e);”基本上意味着“创建一个新的员工对象——我们称之为 e。现在将 e 放在列表中。”,“employees.Add(new Employee())”的意思是“创建一个新员工并将其放在列表中”。这些生成完全相同的编译代码。

以上是关于如何从 c# 控制台应用程序中的用户输入创建多个对象?的主要内容,如果未能解决你的问题,请参考以下文章

编写一个C#控制台应用程序,从键盘输入年份,判断此年份是否闰年。

如何将用户输入从控制台传递到不同线程中的对象-> QTcpsocket

如何从 C# 中的电话号码获取 UTC 偏移量

如何从 C# 中的单个完整路径创建多个目录?

在 C# 中的另一个对象内实例化用户定义的对象

如何在 C# 中使用 rest api 从 github 为用户(人)获取数据?