Example #1
0
        static void Run(string[] args)
        {
            CarFactory buildCar = BuildCar; // covariance, using more derived type for return value
            Car        bmwX5    = buildCar("BMW X5");

            bmwX5.Display();

            PrintBMWInfo getCarInfo = GetCarInfo; // contrvariance, using more generic type that was specified for passing argument

            getCarInfo((BMW)bmwX5);
        }
Example #2
0
        static void Main(string[] args)
        {
            CarFactory buildCar = BuildCar; // covariant assign
            Car        bmwX5    = buildCar("BMW X5");

            bmwX5.Display();

            PrintBMWInfo getCarInfo = GetCarInfo; // contrvariant assign

            getCarInfo((BMW)bmwX5);
        }