我正在尝试创建一个程序,询问用户"您想要输入多少玩家的详细信息?"在他们输入之后,然后要求用户输入这些玩家的每个属性。
基本上,我试图让用户实例化一个类的多个对象。
这是我输入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
答案 0 :(得分:2)
我如何让每个玩家的对象名称(例如上面例子中的player1)不同
你没有。而不是单个变量,考虑对象的集合。基本上,只要您发现自己尝试创建object1
,object2
,object3
等等,那么可能想要使用某些数组或集合亲切的。
这可能是任意数量的集合类型之一,甚至是一个简单的数组。在这种情况下使用的常见类型是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
个对象的集合。