| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Rак создать объект |
| Автор: Riccon 10.10.2007, 19:13 |
| Здравствуйте. У меня такоая тема: из конфиг. файла достаётся переменная N. Мне нужно создать экземпляр класса Q с именем N. Поможите с решением, плз. |
| Автор: tol05 10.10.2007, 19:23 |
| Activator.CreateInstance() ну и System.Type тоже может понадобиться |
| Автор: 1stain 11.10.2007, 13:45 |
| никак. Имена переменных должны быть известны на момент компиляции. Как вариант - массив типа Dictionary <String, // name of instance of Q object Base_Type_for_all_Q_types> |
| Автор: 1stain 11.10.2007, 14:13 |
| tol05, насколько я понял, то что аффтар называет N, в твоем примере называется mc... Если ты знаешь, как создать экземпляр объекта, имя переменной которого определяется при выполнении, скажи как... |
| Автор: tol05 11.10.2007, 14:27 |
| гм... да.. понял... что недопонял 1stain, извини. Ну что ж. Можно попробовать все равно. Сам никогда не делал, но есть прикольные классы в System.CodeDom, System.CodeDom.Compiler Но нужно ли? Riccon, для чего тебе это? |
| Автор: ivashkanet 11.10.2007, 14:50 | ||
Интересно... а какая хрен разница для программы какое имя будет иметь переменная? |
| Автор: 1stain 11.10.2007, 14:52 |
| как раз сейчас работаю над проектом, в котором на основе ini файла надо строить дерево классов. Для каждого экземпляра класса в ini есть своя секция, тип класса возвращается фабричным методом, исходя из ее имени. Отражение это конечно круто, но больно бьет по производительности. В каждом экземпляре есть String св-во Name, которому присваивается также имя секции плюс уникальный числовой идентификатор. |
| Автор: ivashkanet 11.10.2007, 15:16 |
| 1stain, ну сделай класс, одно из полей которого и будет Name, второй SectionName, третье Element (твой класс) либо в самом классе можно завести эти два поля. В любом случае от переменную с нужным именем толку никакого. Ведь имена нужны для того, чтобы их потом сравнивать. А для имени переменной ты не напишешь SomeIdentifier.GetYourNameNah()... |
| Автор: Riccon 11.10.2007, 17:10 |
| tol05, спасибо за наводку. Вопрос снят. |