Как установить скорость передачи 307200 в Linux?

У меня есть подобная иерархия классов

public abstract class CalendarEventBase{}

public class TrainingEvent : CalendarEventBase{}

public class AuditEvent : CalendarEventBase{}

Я хотел создать действие Action lamda с параметром универсального типа типа CalendarEventBase, который я мог бы назначить следующим различным методам:

public void EmailCancelation(TrainingEvent trainingEvent)

public void EmailCancelation(AuditEvent auditEvent)

Я создал следующее недопустимое назначение:

Action<CalendarEventBase> emailCancelation = _trainingService.EmailTrainingCancellation;

Компилятор жалуется, что он ожидал метод с void (CalendarEventBase) в качестве подписи. Я был удивлен этим, так как думал, что он будет принимать более производный тип.

Чтобы обойти это, я создал следующий делегат, который позволяет мне выполнить мою задачу:

public delegate void EmailCancelation<in T>(T calendarEvent) where T : CalendarEventBase;

Мой вопрос: мог ли я выполнить задачу без необходимости создавать дополнительного делегата? Я думал, что могу просто создать экземпляр Action.

Любая помощь или указатели, очень признательны.

5
задан meagar 22 May 2012 в 14:38
поделиться