예제 #1
0
 private static void FooTakeDelegateArgCar(MyDelegateArg <Car> foo)
 {
     foo(new Ford());
 }
예제 #2
0
 private static void FooTakeDelegateArgFord(MyDelegateArg <Ford> foo)
 {
     foo(new Ford());
 }
예제 #3
0
        private static void RunDelegatsArgContvar()
        {
            MyDelegateArgIn <Car> delegateArgInBase = FooArgInBase;

            delegateArgInBase(new Car());

            //MyDelegateArgIn<Car> delegateArgInBaseDerived = FooArgInDerived;
            //delegateArgInBaseDerived(new Ford());

            MyDelegateArgIn <Ford> delegateArgInDerivedBase = FooArgInBase;

            delegateArgInDerivedBase(new Ford());
            MyDelegateArgIn <Ford> delegateArgInDerivedBase1 = delegateArgInBase;

            delegateArgInDerivedBase1(new Ford());

            MyDelegateArgIn <Ford> delegateArgInDerivedDerived = FooArgInDerived;

            delegateArgInDerivedDerived(new Ford());


            ////////////////////


            MyDelegateArg <Car> delegateArgBase = FooArgInBase;

            delegateArgBase(new Car());

            //MyDelegateArg<Car> delegateArgBaseDerived = FooArgInDerived;
            //delegateArgBaseDerived(new Ford());

            MyDelegateArg <Ford> delegateArgDerivedBase = FooArgInBase;

            delegateArgDerivedBase(new Ford());
            //MyDelegateArg<Ford> delegateArgDerivedBase1 = delegateArgBase;
            //delegateArgDerivedBase1(new Ford());

            MyDelegateArg <Ford> delegateArgDerivedDerived = FooArgInDerived;

            delegateArgDerivedDerived(new Ford());

            FooTakeDelegateArgFord(FooArgInDerived);
            FooTakeDelegateArgInFord(FooArgInDerived);

            FooTakeDelegateArgFord(FooArgInBase);
            FooTakeDelegateArgInFord(FooArgInBase);

            FooTakeDelegateArgCar(FooArgInBase);
            FooTakeDelegateArgInCar(FooArgInBase);

            //FooTakeDelegateArgInCar(delegateArgInDerivedBase1);

            DelegateCar  dc = FooArgInBase;
            DelegateFord df = new DelegateFord(FooArgInDerived);

            //dc = FooArgInDerived;
            df = FooArgInBase;

            //dc = df;
            //df = dc;
        }