C#如何允许用户输入实例变量并创建多个对象?

时间:2016-06-03 14:58:29

标签: c# class loops object instance-variables

我正在尝试创建一个程序,询问用户"您想要输入多少玩家的详细信息?"在他们输入之后,然后要求用户输入这些玩家的每个属性。

基本上,我试图让用户实例化一个类的多个对象。

这是我输入FootBallPlayer类的原因

class FootballPlayer
{
  private string fullName;
  private int yearBorn;
  private double goalsPerGame;

  // constructor
  public FootballPlayer (string name, int year, double goals)

  {
     fullName = name;
     yearBorn = year;
     goalsPerGame = goals;
  }

  // read-only properties
  public string Name;
  {
     get
       { 
          return fullName;

   public string YearBorn;
  {
     get
       { 
          return yearBorn;
       }
  }

  public string Goals;
  {
     get
       { 
          return goalsPerGame;
       }
  }

在我的第二类FootballPlayerApp中,我试图让用户首先输入玩家数量,其次是所有这些用户的详细信息。

我创建了以下方法     GetInput()//允许用户输入玩家数量并返回     GetName()//允许用户输入玩家名称     GetYear()//允许用户输入出生年份     GetGoals()//允许用户输入得分的目标数。

据我所知,我可以在main方法中创建一个对象,如下所示

FootballPlayer player1 = new
FootballPlayer ("Lionel Messi", 1988, 2.3);

我不明白的是

  • 当用户能够输入任意数量的玩家时,如何让用户输入的每个玩家的对象名称(例如上面示例中的player1)不同。

  • 如何循环播放,以便输入多个玩家,直到达到numberOfPlayers

  • 如何显示结果如下。

例如,如果用户输入了2个玩家     player1(" Lionel Messi",1998,2.3)     player2(" Ronaldo",1985,1.4)

如何将结果显示为

 Player Name    Year Born     Average Goals Scored

 Lionel Messi        1998                      2.3
 Ronaldo             1985                      1.4

1 个答案:

答案 0 :(得分:2)

  

我如何让每个玩家的对象名称(例如上面例子中的player1)不同

你没有。而不是单个变量,考虑对象的集合。基本上,只要您发现自己尝试创建object1object2object3等等,那么可能想要使用某些数组或集合亲切的。

这可能是任意数量的集合类型之一,甚至是一个简单的数组。在这种情况下使用的常见类型是List<T>,您的类型将为List<FootballPlayer>

在结构上它可能看起来像这样:

var players = new List<FootballPlayer>();
var numberOfPlayers = GetInput();
for (var i = 0; i < numberOfPlayers; i++)
{
    // prompt the user to enter the next player

    var player = new FootballPlayer();
    player.Name = GetName();
    player.Goals = GetGoals();
    // etc.  Basically build up a FootballPlayer object from user input

    players.Add(player);
}

系统会提示用户输入每个播放器,您可以使用循环中的i变量来提供有用的消息。例如,“输入播放器2的详细信息:”或类似内容。

循环完成后,FootballPlayer变量中有players个对象的集合。