Не похоже, что среда выполнения позволяет вам размышлять об анонимных функциях, что является позором.
Анонимные функции (возможно, по определению) помечены как dynamic
. Если вы передаете несовместимый тип в анонимную функцию, ошибка не выдается . Любые несоответствия типов будут тихо разыгрываться как можно лучше. Передача что-то вроде "minotaur"
в качестве параметра uint
приведет к 0
(нулю), например.
Если вы ДЕЙСТВИТЕЛЬНО хотите перегрузить его, вы можете получить все ОО на нем. Вместо принятия анонимных функций вы можете объявить интерфейс, который содержит соответствующую сигнатуру функции, и принять объекты, которые реализуют этот интерфейс.
public interface IFancyCallback {
public function fancyFunction(frog:Frog, princess:Girl):UsefulReturnType;
}
И ваша функция должна быть просто упакована в объект:
public class ConcreteCallback implements IFancyCallback {
public function fancyFunction(frog:Frog, princess:Girl):UsefulReturnType {
princess.kiss(frog);
return new UsefulReturnType("jabberwocky");
}
}
Может иметь потенциал, чтобы создать много накладных расходов кода. Зависит от того, сколько обратных вызовов вы намереваетесь иметь, кто будет их делать, и насколько это будет серьезно, если сигнатура функции anon будет неправильной.
Не могли бы вы рассказать о проблеме, которую вы пытаетесь решить?