2010-01-15 2 views
4

Я хочу динамически создавать и указывать экземпляры моего объекта во время выполнения, когда я добавляю их в класс списка. Я почему-то думал, что это будет простым вопросом в C#, но до сих пор мне не удалось найти какую-либо информацию о том, как достичь этого ,Как мне динамически создавать объекты и имена объектов во время выполнения на C#?

для краткого описания У меня есть пользовательский класс, который во время выполнения я хочу создать список массивов и заполнить его объектами класса custon, но назовите объекты, поскольку они добавляются в список, используя индекс цикла и стандартное имя.

Возможно ли это?

ответ

2

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

List<YourClass> yourList = new List<YourClass>(); 
YourClass instance = new YourClass(); 
yourList.Add(instance); 
YourClass instance2 = yourList[0]; 

Например, если вы хотите ваш словарь с ключевая строка («имя»):

Dictonary<string, YourClass> dict = new Dictonary<string, YourClass>(); 
YourClass instance = new YourClass(); 
dict.Add("someName", instance); 
YourClass instance2 = dict["someName"]; 

в отличии от PHP, нет встроенного типа коллекции в C#, что позволяет получить доступ к своим членам с помощью как индекса или ключа. Вы всегда можете создать свой собственный.

+0

мои извинения за неясность. Это 0430, и я уже давно нахожусь в постели :) Сондерс, ты совершенно прав. –

0

Если вы хотите дать им имя, то добавьте их в сопоставление вместо списка.

2

Объекты не имеют имен в .NET.

Кроме того, не используйте класс ArrayList. Вместо этого используйте List<T>.

+0

Не пытайтесь быть аргументированным здесь, но я бы сказал, что обратное верно, потому что вы обычно назначаете свои объекты переменной в какой-то момент, пусть даже смутно, зарывая их в список, благодаря чему у вас есть средство для находить и идентифицировать их в вашем коде ... эффективно предоставляя им имя рода. Опять же, вы всегда можете указать свойство имени для своих объектов ... Подумайте об этом, то же самое можно сказать о любом языке, визуальном или другом. :-) –

+0

Не похоже, что OP говорит о переменных здесь, а скорее о объектах. Объекты вообще не имеют имен. –

+0

Теперь я бодрствую и стреляю по всем цилиндрам, но S Robins - это то, о чем я пытался достичь в то время. Извините за недостаток ясности, но за то, что за 28 часов подряд можно разбить свои рассудительные способности –

1

Сортировка нечетного вопроса, так как вы не можете «называть» объекты.

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

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