|
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 32
|
|||||||||||
Получить доступ до членов анонимного типа13.05.2015, 23:25. Показов 3890. Ответов 15
Метки нет (Все метки)
путаюсь в анонимных типах.
хотя если строчку с ошибкой закомментировать, программа выдает вполне вразумительный результат:
0
|
|||||||||||
| 13.05.2015, 23:25 | |
|
Ответы с готовыми решениями:
15
Linq Aggregate для анонимного типа Как получить доступ к методам из переменной типа Object |
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
|
| 13.05.2015, 23:35 | |
|
ни как, тут нужно использовать класс.
1
|
|
|
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 32
|
|
| 13.05.2015, 23:38 [ТС] | |
|
печаль..
0
|
|
|
|
||||||
| 13.05.2015, 23:46 | ||||||
|
blackofe, в восьмой строке замени var на dynamic
1
|
||||||
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
||
| 14.05.2015, 00:00 | ||
|
а чисто ради интереса/чтобы заработало можно динамик заюзать.
0
|
||
|
|
|
| 14.05.2015, 00:15 | |
|
Metall_Version, на самом деле это все шарповские заморочки. В VB.Net этой проблемы вообще нет. Поскольку при инициализации переменной лямбда-выражением там вполне корректно выводится сигнатура, при точно такой же ситуации есть возможность обращаться к членам типа и даже подсказки по ним получать.
1
|
|
|
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 32
|
|
| 14.05.2015, 16:58 [ТС] | |
|
dynamic работает. конечно, intellisense ничего не показывает (и не должен), но вывод члена компилируется и значение выводится.
но я всегда считал dynamic некоторым оверхедом. не замедляет ли это работу приложения, ведь ему (приложению) приходится разбираться с типами на лету? это раз, а во-вторых, возникает потенциальная опасность что-то по дороге потерять и не получить при этом ошибку компиляции. имхо, это самые противные ошибки - которые отодвигаются до времени исполнения. diadiavova, а вот это совсем непонятно. неужели у vb.net такие отличия от c#?! кстати, вышеуказанный тест из vs 2013. проверил в 2015 - та же история.
0
|
|
|
|
||
| 14.05.2015, 17:00 | ||
|
blackofe, все имеет свою цену. Хотя беспокоиться о производительности всего приложения явно не стоит. Оптимизация производительности на ранних этапах разработки чаще всего оборачивается "экономией на спичках". Не стоит отказываться от удобств ради того, что, возможно, в конечном итоге и значения-то иметь не будет.
Что до ошибок времени исполнения в результате использования позднего связывания, ну тут опасность есть и в принципе каждый уже сам для себя решает, стоит оно того или нет в каждой конкретной ситуации. Злоупотреблять этим я бы не стал, но знать о том, что данную проблему можно решить, ну по крайней мере, если "кровь с носа" надо - совсем не лишне, ИМХО. Добавлено через 2 минуты
0
|
||
|
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 32
|
||||||
| 14.05.2015, 17:08 [ТС] | ||||||
|
я подумал, что, наверное проблема в том, что мне приходится сочинять функтор, возвращающий тип "объект"
а можно ли здесь как-нибудь вообще обойтись без Func? ну, чтобы выполненное лямбда выражение сразу возвращало анонимный тип напрямую - без боксинга? я как-то не вижу, как это можно сделать. Добавлено через 3 минуты
0
|
||||||
|
|
||
| 14.05.2015, 17:10 | ||
|
blackofe, тут проблема как раз-таки в том и есть, что джинерик-параметру надо передать уже описанный тип. Учитывая, что шарп не умеет из лямбда-выражения выводить тип делегата, решения проблемы видимо нет.
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||||||||
| 14.05.2015, 17:36 | ||||||||||||
Сообщение было отмечено Ev_Hyper как решение
Решение
4
|
||||||||||||
|
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 32
|
|||||||||||||||||||||||||||||||
| 14.05.2015, 18:45 [ТС] | |||||||||||||||||||||||||||||||
|
kolorotur,
спасибо, работает. но этот способ требует вводить дополнительный метод, а я очень не люблю порождать лишние сущности без особой на то нужды. Добавлено через 43 минуты собственно говоря, откуда все взялось. нужно было получить два ключа из криптопровайдера. для этого нужно создать экземляр провайдера, из которого получить эти самые ключи. после этого провайдер мне не нужен, достаточно оставить ключи. я люблю пользоваться короткоживущими объектами, типа:
мне нравится в c++ заворачивать в лямбда-выражения какие-нибудь локальные сиюместные функции. к примеру
родилась идея применить подобное в c#:
возможно, если бы мне удалось применить c++-подход и нарисовать что-то вроде:
я, наверное, еще не достиг того уровня эквилибристики, после которого лямбды просто вылетают из-под пальцев как печеные пирожки. прошу меня за это простить и посоветовать, как все это можно красиво сделать.
0
|
|||||||||||||||||||||||||||||||
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
|
| 14.05.2015, 18:46 | |
|
blackofe, если анонимный тип используется вне метода, то это вполне особая нужда чтобы написать класс. Анонимные нужны только в контексте одного метода
1
|
|
|
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 32
|
||
| 14.05.2015, 19:09 [ТС] | ||
|
Добавлено через 12 минут Не по теме: заголовок моей темы хитрым образом меняется сам без моего участия. ;)
0
|
||
|
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
|
|
| 14.05.2015, 19:14 | |
|
0
|
|
| 14.05.2015, 19:58 [ТС] | |
|
0
|
|
| 14.05.2015, 19:58 | |
|
Помогаю со студенческими работами здесь
16
Получить доступ к TryParse типа Enum через рефлексию доступ анонимного пользователя и т.д... Разрешен доступ анонимного пользователя Anonymous type в linq: Неверное определение члена анонимного типа Как получить доступ к элементу массива типа запись Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|