如何制作生成的对象名称?例如:
ObjectEx "name" = new ObjectEx();
修改
该对象将由用户输入命名。 代码将是:
Console.Write("Input new user's name: ");
string newUsersName = Console.ReadLine();
(Create ObjectEx)
编辑2:
Dictionary
(ObjectEx
)Person
处理所有ObjectEx
s。
Person
是真正的类名,抱歉制作示例对象ObjectEx
。
public static List<Person> persons = new List<Person>();
答案 0 :(得分:6)
对象没有名称 - 变量有,并且它们总是在编译时确定。
如果你想要一个从字符串到对象的地图,只需使用Dictionary<string, ObjectEx>
- 然后使用Random
随机字符串。 (有很多在Stack Overflow上生成随机字符串的例子。)
如果你只想要一个对象集合并且使用“随机名称”作为表达方式,请使用List<ObjectEx>
- 在这种情况下根本不需要名字。
如果您需要其他内容,请更具体。
答案 1 :(得分:1)
您可以使用array
并将对象存储到其中。
ObjectEx []arrObjectEx = new ObjectEx[10];
arrObjectEx[0] = new ObjectEx();
如果随机元素的数量未知,我会使用list<T>
(通用列表)而不是数组。
List<ObjectEx> lstObjectEx = new List<ObjectEx>();
lstObjectEx.Add(new ObjectEx());
如果需要唯一地访问随机生成的对象,则可以使用dictionary。例如
Dictionary<int, ObjectEx> dicObjectEx = new Dictionary<int, ObjectEx>();
dicObjectEx.Add(someUniqueNumber, new ObjectEx());
答案 2 :(得分:1)
这是不可能的,但如何使用Dictionary。您可以使用字符串值Add and Get hold of a Object。
// somewhere near the start in your code initialize the dictionary
var dict = new Dictionary<string, Person>();
// later on you can dynamically add an Object to the Dictionary
// newUsersName is the so called Index
string newUsersName = Console.ReadLine();
dict.Add(newUsersName, new Person());
// if you need to get hold of that object again use the Index
// myObj is a Person type
var myObj = dict[newUsersName];
// assume Person has an Age property
myObj.Age = 20;
// show all Persons now in the dictionary
foreach(var username in dict.Keys)
{
Console.WriteLine(username);
var pers = dict[username];
Console.WriteLine("{0} is {1} years old", username, pers.Age );
}
答案 3 :(得分:0)
您可以使用字典来存储对象,其中Key是对象名称