【发布时间】:2014-03-28 15:17:29
【问题描述】:
这一定是一个简单的问题。我定义了两种委托类型:
delegate void TestHandler(object sender, EventArgs args);
delegate void TestHandlerGen<TArgs>(object sender, TArgs args);
然后我使用它们:
TestHandler h1 = null;
TestHandlerGen<EventArgs> h2 = delegate { };
// this compiles
h1 = new TestHandler(h2);
// this doesn't compile:
// Cannot implicitly convert type 'X.TestHandlerGen<System.EventArgs>'
// to 'X.TestHandler'
h1 = h2;
代表签名相同,为什么h1 = h2编译不通过?
为什么h1 = new TestHandler(h2) 编译得很好?
【问题讨论】:
标签: c# generics compiler-construction delegates type-conversion