7 / 7 / 0
Регистрация: 05.04.2016
Сообщений: 408
|
||||||
1 | ||||||
Создать переменную типа, хранящегося в переменной типа Type28.08.2017, 09:29. Показов 4273. Ответов 7
Метки нет Все метки)
(
Здравствуйте.
Гугл не помог, потому обращаюсь за помощью к вам. Пишу загрузку (не важно чего) из файла, данные хранятся в формате строки и, когда я считываю одно слово - оно является названием типа в моём приложении, после чего через Type.GetType(string typeName) я получаю сам тип (https://msdn.microsoft.com/ru-... .110).aspx), но возможно ли как то создать переменную этого типа? (это мне и надо) если непонятно, то вот пример:
О, придумал, наконец то, как адекватно сказать: мне нужно использовать содержимое строки как тип для создания экземпляра класса
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
28.08.2017, 09:29 | |
Ответы с готовыми решениями:
7
Предполагается ли в C# синтаксис для создания переменной того типа, который указан в переменной Type type
Записать адрес переменной произвольного типа в переменную типа int |
![]() 9798 / 7168 / 1142
Регистрация: 21.01.2016
Сообщений: 27,258
|
|
28.08.2017, 09:41 | 2 |
Nordicus666, создать-то можно (через Activator.CreateInstance), но как вы дальше с данным объектом работать собрались? Ведь полученный объект будет типа Object и вам с ним или через рефлексию работать или приводить к нужному типу, а это значит, что нужно знать тип данного объекта.
Добавлено через 1 минуту Количество типов во входном файле фиксировано? Или могут быть произвольные типы?
0
|
Администратор
![]() |
|
28.08.2017, 09:44 | 3 |
Nordicus666, Type.GetType("...") ожидает полное имя типа - с пространством имен и именем сборки, если тип не в текущей сборке.
0
|
28.08.2017, 11:23 | 4 | |||||
Nordicus666, может так:\
1
|
![]() 9798 / 7168 / 1142
Регистрация: 21.01.2016
Сообщений: 27,258
|
|
28.08.2017, 11:27 | 5 |
skilllab, такое проканает, если все создаваемые объекты имеют общего предка и вся работа будет идти только через него.
0
|
![]() 9798 / 7168 / 1142
Регистрация: 21.01.2016
Сообщений: 27,258
|
|
28.08.2017, 14:10 | 7 |
Базовый класс или интерфейс.
С помощью Activator.CreateInstance . Но вот привести полученный Object к нужному типу уже не получится ибо на этапе компиляции мы о типе ничего не знаем. Можно, конечно, извернуться и продолжить эксплуатировать рефлексию: найти поле\свойство того же типа в нужном классе и присвоить вновь созданный объект этому полю. Но это дичь полная.
0
|
7 / 7 / 0
Регистрация: 05.04.2016
Сообщений: 408
|
|
28.08.2017, 17:09 [ТС] | 8 |
Activator.CreateInstance помог, огромное спасибо, не знал, что такое есть вообще, очень удобно, что можно написать просто текущий namespace, затем точку, затем переменную типа string, содержащую имя класса и он тебе создаст экземпляр этого класса (разве что явное приведение сделать да и всё), буду теперь знать про такое. Ещё раз огромное спасибо, проблема решена.
0
|
28.08.2017, 17:09 | |
Помогаю со студенческими работами здесь
8
Как сравнить переменную типа String с переменной типа Int? Перенос данных из переменной одного типа в переменную другого типа Получить из переменной типа uint32_t* переменную типа char* Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |