2013-07-21 6 views
0

Как создать сгенерированное имя объекта? Например:Как создать сгенерированное имя объекта?

ObjectEx "name" = new ObjectEx(); 

Edit:

Объект будет назван ввода данных пользователем. Код будет:

Console.Write("Input new user's name: "); 
string newUsersName = Console.ReadLine(); 
(Create ObjectEx) 

Edit2:

У меня есть Dictionary для ObjectEx (Person), который обрабатывает все ObjectEx с.

Person - настоящее имя класса, извините за создание примера объекта ObjectEx.

public static List<Person> persons = new List<Person>(); 
+5

И как вы будете использовать его тогда? – FSou1

+3

Зачем вам это нужно? Компилятор не заботит слишком много для ваших симпатичных имен. – Sayse

+2

Объекты не имеют имен. Остановитесь и подумайте об этом. –

ответ

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()); 
6

Объекты не имеют имен - переменные действуют, и они всегда определяются во время компиляции.

Если вы хотите получить карту от строки до объекта, просто используйте Dictionary<string, ObjectEx> - тогда придите со случайными строками, используя Random. (Существует множество примеров генерации случайных строк в переполнении стека.)

Если вы просто хотите создать коллекцию объектов, и вы использовали «случайное имя», чтобы выразить это, используйте List<ObjectEx> - вам не нужно имя вообще в этом случае.

Если вам нужно что-то еще, будьте более конкретными.

0

Вы можете использовать словарь для хранения объектов, где ключ это имя объекта

1

Это не возможно, но как об использовании Dictionary. Вы можете использовать строковое значение «Добавить» и «Получить удержание объекта, который вы сохранили».

// 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); 
} 
+0

Как изменить dict на словарь? – McSwaggens

+0

'dict' уже имеет тип' Dictionary', зачем его менять? – rene

Смежные вопросы