Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
06.02.2017, 22:03
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Почему тип переменной ss определяется как dynamic ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.02.2017, 22:18
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
refreg, вы что-то путаете/ошибаетесь/недоговариваете... в вашем примере, даже если исправить s на ss - Int32 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.02.2017, 22:26
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
buser, в интелисенсе посмотри ЗЫ. Ошибся в Console.WriteLine когда тестовый пример делал. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.02.2017, 22:54
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
LRrefreg, type dynamic exists only at compile time, not at run time Конкретнее здесь, в секции - Overload Resolution with Arguments of Type dynamic : Overload resolution occurs at run time instead of at compile time if one or more of the arguments in a method call have the type dynamic, or if the receiver of the method call is of type dynamic. Т.е., обычные издержки работы с dynamic )) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 06:12
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
А мне тоже непонятно, почему тип ss динамик, хотя возврат метода М, который присваивается ss, интовый. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 08:54
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
BowieА мне тоже непонятно, почему тип ss динамик, хотя возврат метода М, который присваивается ss, интовый. Типа dynamic не существует в run-time, это своего рода "соглашение" для compile-time - что выражение будет разрешаться в run-time. Это "соглашение" (что в compile-time результат выражения "неопределен") распространяется и на вызов метода, когда в качестве параметра передается dynamic, независимо от сигнатуры метода. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Очевидно, что intellisense вполне согласуется с "соглашением" dynamic. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 13:01
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
LR, т. е. соглашение, что у метода М есть тип возврата int идёт лесом? А каким образом тип параметра замещает собой тип возврата? Где логика? Я в упор не вижу логики. LRЭто "соглашение" (что в compile-time результат выражения "неопределен") Какого выражения? Параметр М не участвует в вычислении возвращаемого параметра - каким образом этот параметр может влиять на тип возпрата? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 13:03
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
Если бы было Код: c# 1.
или ещё чего подобного - т. е. чтобы параметр участвовал в вычислении возврата, то я бы понял, а соглашение, что "при любых раскладах, если параметр dynamic, то и возврат будет dynamic, даже если параметр вообще не используется" я не понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 13:08
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
Ну и вроде я где-то читал соглашение, что dynamic служит для сопряжения C# с другими языками, в частности, с динамической типизацией. Использовать dynamic чисто внутри C# является очень плохой практикой, и для подобных целей в нём есть дженерики. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 13:09
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
Так же как и приведение всего к object или string, а потом приведение обратно в нужный тип - это всё путь в ад. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 13:20
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
BowieКакого выражения? Параметр М не участвует в вычислении возвращаемого параметра - каким образом этот параметр может влиять на тип возпрата? Например, вот так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
BowieНу и вроде я где-то читал соглашение, что dynamic служит для сопряжения C# с другими языками, в частности, с динамической типизацией. Использовать dynamic чисто внутри C# является очень плохой практикой, и для подобных целей в нём есть дженерики. Угу. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 17:44
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
LR, не понял с перегруженным методом М. Какой бы я параметр не послал в любую перегрузку, а он не участвует в образовании возврата. Почему возврат имеет тип dynamic? Вы могли бы переписать перегруженные методы одним методом, где бы через метод GetType получили бы несколько кейсов и вернули бы значение нужного типа? Такой вариант тоже сработал бы? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 17:46
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
LR, вы несколько перегрузок привели, чтобы показать, как использовать dynamic? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 17:55
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
А, погодите. Логика такая: если у метода есть перегрузки, и хотя бы одна из них имеет тип dynamic, то невозможно определить во время компиляции, какая перегрузка будет вызвана и, следовательно, какой возврат будет. Верно? Т. е. во время компиляции для параметра типа dynamic подходит всё множество методов, и, следовательно, всё множество возвратов, которое обозначено через тот же типа dynamic? Ну ладно, для перегруженных методов понятно. А почему даже с одним единственным методом у ТСа тоже возврат имеет тип dynamic? Ведь перегрузок у него нет. Может, это связано как-то с method group, который может состоять и из одного метода? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 18:07
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
Bowie, BowieНу ладно, для перегруженных методов понятно. А почему даже с одним единственным методом у ТСа тоже возврат имеет тип dynamic? Ведь перегрузок у него нет. Может, это связано как-то с method group, который может состоять и из одного метода?Представь, что класс в другой сборке. Кто-то может добавить перегрузку. BowieНу и вроде я где-то читал соглашение, что dynamic служит для сопряжения C# с другими языками, в частности, с динамической типизацией. Использовать dynamic чисто внутри C# является очень плохой практикой, и для подобных целей в нём есть дженерики.К сожалению, без dynamic при работе с COM не обойтись... И дженерики тут не помогут. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.02.2017, 22:38
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
Bowie, повторю еще раз - "типа dynamic не существует в run-time" - думайте сами, решайте сами... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.02.2017, 01:15
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
refregК сожалению, без dynamic при работе с COM не обойтись да неужели? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.02.2017, 09:57
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
ИзопропилrefregК сожалению, без dynamic при работе с COM не обойтись да неужели?Не придирайся к словам... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.02.2017, 12:49
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
refregИзопропилпропущено... да неужели?Не придирайся к словам... а к какому слову он придрался? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.02.2017, 13:17
|
|||
---|---|---|---|
|
|||
var & dynamic |
|||
#18+
У меня-таки есть подозрение, что dynamic придумали, после того, как заколебались городить трехэтажный мат для взаимодействия через COM. а var - послет того, как заколебались городить такой же трехэтажный мат для результатов Linq запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.02.2017, 14:48
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
Benny BlancoУ меня-таки есть подозрение, что dynamic придумали, после того, как заколебались городить трехэтажный мат для взаимодействия через COM. Что как бабка-угадка? Читай матчасть . Benny Blancoа var - послет того, как заколебались городить такой же трехэтажный мат для результатов Linq запросов. Как стал нужен и сделали вывод типов! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.02.2017, 15:58
|
|||
---|---|---|---|
|
|||
var & dynamic |
|||
#18+
Benny Blancoа var - послет того, как заколебались городить такой же трехэтажный мат для результатов Linq запросов. Чушь какая. Пробуйте сгородить трехэтажный мат вместо var вот для для такого: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.02.2017, 00:38
|
|||
---|---|---|---|
var & dynamic |
|||
#18+
refregИзопропилпропущено... да неужели?Не придирайся к словам... COM - не обязательно IDispatch IDispatch - тож не так страшно без dynamic (InvokeMember) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1400052]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 278ms |
total: | 431ms |
0 / 0 |