Ковариация значения в словареC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Ковариация значения в словаре

Сообщение Anonymous »

Я пытаюсь добавить более производный тип в качестве значения в словарь, но получаю следующую ошибку:
Невозможно преобразовать HandleIntegrationEvent в HandleIntegrationEvent< IBaseEvent>
Пример

Код: Выделить всё

using System.Threading.Tasks;
using System.Collections.Generic;

public interface IBaseEvent
{
string Name { get; }
}

public class UserCreatedEvent: IBaseEvent
{
public string Name { get; } = "UserCreatedEvent";
}

public delegate Task HandleIntegrationEvent(TR @event) where TR: IBaseEvent;

public class IntegrationBus
{
private readonly IDictionary _listeners = new Dictionary();

public void RegisterEventListener(string @event, HandleIntegrationEvent listener) where TR: IBaseEvent
{
// ERROR: cannot convert from HandleIntegrationEvent to HandleIntegrationEvent
_listeners.Add(@event, listener);
}
}
Я просто не могу этого понять и уже некоторое время пытаюсь понять проблему.
Насколько я понимаю, общее ограничение должно гарантировать, что экземпляр реализован интерфейс IBaseEvent.
А пока у меня просто мысленный блок

Подробнее здесь: https://stackoverflow.com/questions/787 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»