Учитывая новую динамическую поддержку в C # 4, возможно ли написать класс таким образом, что если метод вызывается для экземпляра, а этот метод отсутствует, диспетчеризация передается другому методу? Это может выглядеть примерно так:
public class Apple : ... {
// ...
private ... MethodMissing(string name, ...) {
if (name == "TurnIntoOrange") {
// do something
}
}
}
dynamic d = new Apple();
d.TurnIntoOrange(); // Not actually defined on Apple; will pass to MethodMissing.
Другие языки назвали бы это "method_missing support", под более общим заголовком метапрограммирования. Я не уверен, что C # называет это конкретно. Но возможно ли это?