|
12 / 12 / 3
Регистрация: 22.10.2010
Сообщений: 137
|
||||||
Динамическое создание типа для коллекции02.05.2017, 22:11. Показов 6655. Ответов 25
Метки нет (Все метки)
Здравствуйте!
Есть такая задумка, но не знаю как реализовать. Файл электронной таблицы, в котором допустим есть 10 колонок, моя программа не знает о количестве и названиях колонок. Описание этой таблицы находится во внешнем файле, условно config.xml. Хочу сделать либо Struct, либо Class, в которых буду описывать тип моей электронной таблицы(названия колонок). Допустим мне надо из 10 колонок только 5 использовать для работы. Какие именно колонки надо использовать я беру из файла settings.xml вот ещё был мой вопрос и ещё моя тема Кликните здесь для просмотра всего текста
Я могу жестко прописать тип моей структуры и использовать только нужные в данный момент поля. Но если состав электронной таблицы изменится, то мне придётся переписывать код, а хочется сделать универсальную программу, в которой структура DataArray создавалась бы на основе файла настроек и ещё лучше, если только нужные поля электронной таблицы считывать и записывать значения в поля динамически созданной DataArray. В общем как можно создать типизированную коллекцию List<DataArray>, в которой тип получается и создаётся из файла настроек. Программа не знает ничего, а только использует файла настроек. Спасибо!
0
|
||||||
| 02.05.2017, 22:11 | |
|
Ответы с готовыми решениями:
25
Динамическое создание переменной определенного типа с заданным именем
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||
| 05.06.2017, 10:42 | ||
|
0
|
||
|
Master of Orion
|
|
| 05.06.2017, 12:34 | |
|
aquaMakc, надо было просто на 5 минуту ролик поставить
![]() А так-то все просто: в F# есть специальный тип (Type Provider), и когда F# компилятор видит его использование, он прямо во время билда лезет по ссылке, которая там указана, достает JSON и генерит типы. Ну а дальше все прозаично. Вся магия именно в том, что F# компилятор специальным образом работает с этим типом, по сути это декларация типа атрибута, а не рантайм-зависимость. По крайней мере я так понял. Довольно любопытно. Кстати, забавно, что я был на дотнексте, но выбрал другой зал Так бы чего узнал новомодного. То же самое добавить в шарп не составляет труда, и я думаю, добавят.
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||
| 05.06.2017, 15:46 | ||
) добавили. даже туплы в C# во вменяемом виде появились (правда пришлось всего-то 10 лет подождать). так что лет так через 10-15 добавят (правда как это будет выглядеть представить невозможно).
0
|
||
|
Master of Orion
|
||
| 05.06.2017, 15:50 | ||
|
pycture, linq вроде раньше самого эф шарпа добавили
LINQ вроде норм, не считая того, что он реализуется в рантайме, вместо того, чтобы быть расширением типа макросов как в том же Rust"е (я в соседнем треде про это писал).Лет через 10-15 я думаю уже на другой язык перейду Шарп был хорош долгое время, но ему уже почти 20 лет. Каждые 30 лет язык стоит менять, имхо ![]() Добавлено через 41 секунду Нормальный должны добавить же в следующей версии.
0
|
||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||||
| 07.06.2017, 17:26 | ||||
|
далее первый linq это c# 3.0 (19 November 2007) первый f# 2005 (а до этого было несколько публичных версий начиная с 0.7)
0
|
||||
|
Master of Orion
|
||||
| 07.06.2017, 18:09 | ||||
Нет же, разные языки, и шарп на джаву начиная с 2.0 (который вышел в бородатом году) совсем не похож. По крайней мере если смотреть более широко, чем просто ООП.Добавлено через 1 минуту
0
|
||||
| 07.06.2017, 18:09 | |
|
Какой тип коллекции выбрать для набора типа:
Динамическое изменение типа объекта (для обобщённых типов) Создание расширенных методов для любой коллекции, делегаты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|