나는 다음과 같은 방법을 시도하고, 그러나 그것은 나에게 컴파일러 오류 제공 :상속 된 generic을 변환 할 수 없습니까?
public class MyManager<T> : where T:MyEventArgs
{
private Dictionary<EventHandler<T>, EventFilter<T>> m_cSubscriptions;
public void Subscribe<K>(EventHandler<K> _cHandler, EventFilter<K> _cFilter)
where K:T
{
try
{
// cannot convert EventHandler<K> to EventHandler<T>
m_cSubscriptions.Add(_cHandler, _cFilter);
}
catch (ArgumentException)
{
m_cSubscriptions[_cHandler] = _cFilter;
}
}
}
질문 : 왜 T와 K에서 핸들러를 변환 할 수 없습니다?
Unity3D를 사용하고 있기 때문에 .net 2.0을 사용하고 있습니다. 나는 그것을 직접 던져야 하나? 나는 공분산과 반항에 관해 읽었지 만, 나는이 것을 이해할 수 없었다.
.Net 2에서 지원하지 않는 공분산을 사용하려고합니다. – SLaks