【发布时间】:2014-09-16 10:23:04
【问题描述】:
我正在查看C# 5 in a Nutshell 文本,关于委托参数兼容性部分。它说
当您调用一个方法时,您可以提供比该方法的参数具有更多特定类型的参数。这是普通的多态行为。出于完全相同的原因,委托可以具有比其方法目标更具体的参数类型。这称为逆变。
这一段直到最后一句才有意义。为什么是逆变,即这里的什么投影是逆变的?
随附的示例如下。
delegate void StringAction (string s);
class Test
{
static void Main()
{
StringAction sa = new StringAction (ActOnObject);
sa ("hello");
}
static void ActOnObject (object o)
{
Console.WriteLine (o); // hello
}
}
【问题讨论】: