Это ожидаемое поведение?
Да. Почти все, что вы делаете , включая динамическое значение, заканчивается типом времени компиляции dynamic
. Обратите внимание, что привязка выполняется динамически, поэтому, хотя в этом конкретном случае у вас есть только один GetPerson
метод, в более общем случае вызова метода перегрузки могут присутствовать во время выполнения, которое не ' t присутствует во время компиляции с разными типами возврата.
Есть несколько операций, которые не заканчиваются динамическим типом:
- Кастинг (например,
(string) dynamicValue
)
- Оператор
is
(например, dynamicValue is string
)
- Оператор
as
(например, dynamicValue as string
- вызовы конструктора (например,
new Foo(dynamicValue)
)