All pastes #22235 Raw Edit

contravariance.cs

public text v1 · immutable
#22235 ·published 2005-09-06 17:08 UTC
rendered paste body
class Mammals
{
}

class Dogs : Mammals
{
}

class Program
{
    public delegate void MyHandlerMethod(Dogs sample_dog);

    public static void MyFirstHandler(Mammals elephant)
    {
    }

    public static void MySecondHandler(Dogs sheepdog)
    {
    }

    static void Main(string[] args)
    {
        // Contravariance permits this delegate.
        MyHandlerMethod handler_1 = new MyHandlerMethod(MyFirstHandler);

        MyHandlerMethod handler_2 = new MyHandlerMethod(MySecondHandler);
    }
}