逆变,协变
class Fax
{
}
class LaserPrinter : Fax
{
}
delegate Tresult Func<in T,out Tresult>(T arg);//out 关键字指定该类型参数是协变的,in 关键字指定该类型参数是逆变的
class Program
{
private static T Min<T>(T o, T b)where T:class,IComparable<T>
{
Func<Fax, LaserPrinter> l = teee;
Func<LaserPrinter, Fax> f = l;//逆变
//协变
if (o.CompareTo(b) < 0) return o;
return b;
}
static LaserPrinter teee(Fax i)
{
return new LaserPrinter();
}
}

“一步登天做不到,但一步一个脚印能做到。一鸣惊人不好做,但一股劲做好一件事,可以做。一下成为天才不可能,但每天进步一点点有可能”
浙公网安备 33010602011771号