Exemple #1
0
        public static void InvariantGeneric()
        {
            IInvariantGeneric <MiddleClass> genericMiddle = new InvariantGeneric <MiddleClass>();
            MiddleClass result = genericMiddle.Method(new MiddleClass());

            // This will produce compile-time error:
            // Cannot implicitly convert type 'IInvariantGeneric<MiddleClass>' to 'IInvariantGeneric<BaseClass>'.
            // An explicit conversion exists (are you missing a cast?)
            //// IInvariantGeneric<BaseClass> genericBase = genericMiddle;

            // This will produce compile-time error:
            // Cannot implicitly convert type 'IInvariantGeneric<MiddleClass>' to 'IInvariantGeneric<LastClass>'.
            // An explicit conversion exists (are you missing a cast?)
            //// IInvariantGeneric<LastClass> genericLast = genericMiddle;
        }
        public static void InvariantGeneric()
        {
            IInvariantGeneric<MiddleClass> genericMiddle = new InvariantGeneric<MiddleClass>();
            genericMiddle.Method(new MiddleClass());

            // This will produce compile-time error:
            // Cannot implicitly convert type 'IInvariantGeneric<MiddleClass>' to 'IInvariantGeneric<BaseClass>'.
            // An explicit conversion exists (are you missing a cast?)
            //// IInvariantGeneric<BaseClass> genericBase = genericMiddle;

            // This will produce compile-time error:
            // Cannot implicitly convert type 'IInvariantGeneric<MiddleClass>' to 'IInvariantGeneric<LastClass>'.
            // An explicit conversion exists (are you missing a cast?)
            //// IInvariantGeneric<LastClass> genericLast = genericMiddle;
        }