首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#高级程序设计(5)——代理中的协变和逆变

2012-09-16 
C#高级程序设计(五)——代理中的协变和逆变将方法签名与代理类型匹配时,协变和逆变为您提供了一定程度的灵活

C#高级程序设计(五)——代理中的协变和逆变

将方法签名与代理类型匹配时,协变和逆变为您提供了一定程度的灵活性。协变允许方法具有的派生返回类型比委托中定义的更多。逆变允许方法具有的派生参数类型比委托类型中的更少。

一、逆变

对于下面的三个代理类型:

class Mammals{}class Dogs : Mammals{}class Program{    // Define the delegate.    public delegate Mammals HandlerMethod();    public static Mammals FirstHandler()    {        return null;    }    public static Dogs SecondHandler()    {        return null;    }    static void Main()    {        HandlerMethod handler1 = FirstHandler;        // Covariance allows this delegate.        HandlerMethod handler2 = SecondHandler;    }}


热点排行