На этот вопрос, возможно, уже был дан ответ. Я вижу много вопросов о «разрешении перегрузки динамического метода», но ни один из них не касается конкретно передачи динамического
аргумента. В следующем коде в Test
последний вызов M
не может быть разрешен ( не компилируется ). Ошибка: вызов неоднозначен между [первыми двумя перегрузками M
] .
static void M(Func<int> f) { }
static void M(Func<string> f) { }
static void M(Func<dynamic> f) { }
static dynamic DynamicObject() {
return new object();
}
static void Test() {
M(() => 0);
M(() => "");
M(() => DynamicObject()); //doesn't compile
}
динамически
? динамический
?