示例#1
0
        static void CovarianceExample()
        {
            Console.WriteLine("Covariance Example");
            VarianceDel del = Method1;

            del += Method2;
            //Thus, covariance allows you to assign a method to the delegate that has a less derived return type.
            Animal animal = del(new Dog());
        }
示例#2
0
        static void ContravarianceExample()
        {
            Console.WriteLine("Contravariance Example");
            VarianceDel del = Method1;

            del += Method2;
            //Method3 has a parameter of Animal class whereas delegate expects a parameter of Dog class.
            del += Method3;
            Animal animal = del(new Dog());
        }