C# 允许用户选择对象的名称
以下是我的代码中的相关部分:C# 允许用户选择对象的名称,c#,C#,以下是我的代码中的相关部分: //Allow user to add details of a player Console.WriteLine("Please enter a player name"); string player = Console.ReadLine(); //Create new player object PlayersClass userPlayer = new Pl
//Allow user to add details of a player
Console.WriteLine("Please enter a player name");
string player = Console.ReadLine();
//Create new player object
PlayersClass userPlayer = new PlayersClass();
这就是我的PlayerClass:
class PlayersClass
{
public int id;
public string name, city, street, teamName;
public DateTime birthDate;
public float height;
}
我希望player对象以用户输入-player(字符串)命名。
我想要字符串播放器的值,而不是userPlayer
在c#中可能吗
进一步详情:
它将进入一个玩家列表,其中包含以玩家姓名命名的对象。仅在代码的这一特定部分中,我希望用户只输入一名玩家的详细信息。您可以看到,整个玩家列表已经由以玩家名称命名的对象组成(在本例中忽略类中的属性名称)正如上面注释中所建议的,您可以使用字典按名称存储实例
using System;
using System.Collections.Generic;
class PlayersClass
{
public int id;
public string name, city, street, teamName;
public DateTime birthDate;
public float height;
}
public class Program
{
public static void Main()
{
Dictionary<string, PlayersClass> players = new Dictionary<string, PlayersClass>();
string player = "bob"; //Console.ReadLine();
players[player] = new PlayersClass(){
name = player
};
player = "justin"; //Console.ReadLine();
players[player] = new PlayersClass() {
name = player
};
Console.WriteLine(players["justin"].name);
}
}
使用系统;
使用System.Collections.Generic;
职业球员职业
{
公共int id;
公共字符串名称、城市、街道、团队名称;
公共日期时间出生日期;
公众浮标高度;
}
公共课程
{
公共静态void Main()
{
字典播放器=新字典();
string player=“bob”//Console.ReadLine();
players[player]=新的playerClass(){
name=玩家
};
player=“justin”//Console.ReadLine();
玩家[玩家]=新玩家等级(){
name=玩家
};
Console.WriteLine(玩家[“justin”].name);
}
}
不,你不是真的想要那样。我认为您只需要将player对象的name
属性设置为您输入的字符串。然后你可以用它来显示等等。我想你可能也会以同样的方式询问其他细节,如出生日期等。重命名变量没有任何作用(无论如何,这是不可能的——变量名是在编译代码时设置的,而不是在运行代码时)。此外,使用属性,而不是字段。“我知道这样做会有很大的错误空间,但我需要它用于这个特定的项目”……不,没有错误的空间,因为这是不可能的,我已经解释过了。这是家庭作业还是什么?也许你误解了说明。如果您具体告诉我们您收到了哪些指令,我们可能可以帮助您解释它们。您可能希望将变量存储在字典中。然后你可以使用用户输入作为一个键,这样会更有意义。但这不是你想要的。因此,您不需要重命名变量本身,只需创建一个列表,该列表允许您使用一个键来标识列表中的每个条目。正如前面提到的,字典是一个很好的结构。您可以将键设置为输入的文本,并将其与播放器对象关联(无论首先包含该对象的变量的名称如何)。@roiguber;您不知道如何使用字典,并且在不到2分钟的时间内验证了此代码是否符合您的要求,并且现在可以正常工作了?该死,你跑得太快了。只是要小心:字典不喜欢别人问他们不知道的东西var playerObject=players[“ksjadhkjlhlasdkjfasld”]
可能会引发异常。@quetzalcatl,注意到。顺便说一句,有人已经把这句话格式化了。当我直接从dotnetfiddle粘贴时,我没有注意到。