Неприятная неожиданность при работе с dynamic
От: hyp1k Россия  
Дата: 15.02.15 13:15
Оценка:
Сегодня во вкладке watch при отладке увидел:
dy.GetType() {System.Decimal} dynamic {System.RuntimeType}
dx.GetType() {System.Decimal} dynamic {System.RuntimeType}
dx 4 dynamic {decimal}
dy 2 dynamic {decimal}
dx??0 4 dynamic {decimal}
dy??0 2 dynamic {decimal}
dx??0 — dy??0 4 dynamic {decimal}
(dx??0) — (dy??0) 2 dynamic {decimal}

Вопрос, почему предпоследняя строчка так считается?
dynamic выражения операции приведение типов
Re: Неприятная неожиданность при работе с dynamic
От: tapatoon  
Дата: 15.02.15 18:35
Оценка: 34 (2) +2
Здравствуйте, hyp1k, Вы писали:

H>Сегодня во вкладке watch при отладке увидел:

H>dy.GetType() {System.Decimal} dynamic {System.RuntimeType}
H>dx.GetType() {System.Decimal} dynamic {System.RuntimeType}
H>dx 4 dynamic {decimal}
H>dy 2 dynamic {decimal}
H>dx??0 4 dynamic {decimal}
H>dy??0 2 dynamic {decimal}
H>dx??0 — dy??0 4 dynamic {decimal}
H>(dx??0) — (dy??0) 2 dynamic {decimal}

H>Вопрос, почему предпоследняя строчка так считается?


Потому что приоритет оператора '-' выше чем '??'
Re: Неприятная неожиданность при работе с dynamic
От: Sinix  
Дата: 15.02.15 19:34
Оценка: +1
Здравствуйте, hyp1k, Вы писали:

H>Вопрос, почему предпоследняя строчка так считается?

dynamic тут ни при чём, как уже ответили выше, проблема в приоритете операторов. Подробнее от Липперта.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.