★ 协变:

 委托的类型返回值是它所指向函数的返回值得基类.

    private void InitPage()
    {
        HandlerMethod handler1 
= Method1;
        HandlerMethod handler2 
= Method2; // 协变
    }


    
private class Animal { }
    
private class Dog : Animal { }

    
private delegate Animal HandlerMethod();

    
private static Animal Method1() { return null; }
    
private static Dog Method2() { return null; }   

 


★ 逆变:

委托的类型参数是它所指向函数的参数的派生类.

    private void InitPage()
    {
        HandlerMethod handler1 
= Method1;
        HandlerMethod handler2 
= Method2; // 逆变
    }


    
private class Animal { }
    
private class Dog : Animal { }

    
private delegate void HandlerMethod(Dog dog);

    
private static void Method1(Dog dog) { }
    
private static void Method2(Animal animal) { }   


相关文章:

  • 2022-12-23
  • 2021-08-14
  • 2022-12-23
  • 2021-05-23
  • 2022-12-23
  • 2021-09-17
  • 2022-12-23
  • 2021-08-03
猜你喜欢
  • 2021-08-10
  • 2021-09-28
  • 2021-09-24
  • 2022-12-23
  • 2021-09-07
  • 2021-07-31
  • 2022-12-23
相关资源
相似解决方案