Следующий ответ не написан в книгах, et c., Это всего лишь предположение, но я считаю, что в некоторой степени, если не для всех, это правда. Однако это, безусловно, правильный ответ на ваш вопрос:
EventCallback - это не тип делегата, а структура, которая создает делегаты по мере необходимости.
Когда вы используете OnStop=StopHandler1
и OnStop=StopHandler2
для EventCallback<DateTime> OnStop
'делегата', оба метода допускаются, хотя их сигнатуры различаются, потому что за кулисами правильный делегат предоставляется системой (I Я не знаком с внутренним устройством Blazor, но это кажется мне очень разумным).
Если вы используете настоящий делегат, такой как делегат Action, использование обоих методов для одного и того же делегата не сработает. Если вы сделаете что-то вроде этого:
[Parameter]
public Action<DateTime> OnStop { get; set; }
Это: <Earth OnStop=StopHandler1 />
не будет работать, поскольку подпись метода StopHandler1 не подходит для делегата Action, определенного здесь.
Надеюсь это помогает ...