私は、次のメソッドをしようとしていますが、それは私のコンパイラエラーを与える:継承された汎用は変換できませんか?
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;
}
}
}
は質問:なぜ私はKからTまでハンドラを変換することはできませんか?
Unity3Dを使用しているため、私は.net 2.0を使用しています。それを自分でキャストしなければならないのですか?私は共分散と反共分散について読みましたが、私はこのことを理解できませんでした。
.Net 2がサポートしていない共分散を使用しようとしています。 – SLaks