- -呵呵别糊涂,这是个搞笑的标题.
简单描述下协变:例如 :主要是有个类Box配生了Bs,这样一来,可以在以Box类为返回值的Max委托中,返回BX
当委托方法的返回类型具有的派生程度比委托签名更大时,就称为协变委托方法。--简称变我
class Box{}
class BS: Box {}
--------------在某个可执行的代码中~~呵呵懒的写了
public delegate Box MAx();
public static Box FirstMAx() { return null; }
public static BS SecondMAx() { return null; }
MAx MaxOne = FirstMAx;
//---------------------主要是这里变我咯
//-注意这个bs是继承自box,隐式转换
MAx MaxTOO = SecondMAx;
---ok现在和上面的差不多只是改成带参数的-《逆变》~~哀变我没商量
当委托方法签名具有一个或多个参数,并且这些参数的类型派
生自方法参数的类型时,就称为逆变委托方法更加简单。
class Box{}
class BS: Box {}
//----------------------------------------还是在某个可执行的代码中
public delegate void Box(Box s);
public static void BOXHandler(Box e) { }
public static void BSHandler(BS s) { }
Box box1 = BOXHandler;
Box box2 = BSHandler;
写的不好多有得罪咯~~