예제 #1
0
        public void TestDelegate()
        {
            // Instantiating the delegates with the methods.
            DContravariant <Control> dControl = SampleControl;
            DContravariant <Button>  dButton  = SampleButton;

            // You can assign dControl to dButton
            // because the DContravariant delegate is contravariant.
            dButton = dControl;

            // Invoke the delegate.
            dButton(new Button());
        }
예제 #2
0
        public void TestVariance()
        {
            DInvariant <string> dinString = () => "";
            //DInvariant<object> dinObject = dinString;

            DCovariant <string> dcoString = () => " ";
            DCovariant <object> dcoObject = dcoString;

            DContravariant <object> dcontraObject = (a) => Console.WriteLine(a);
            DContravariant <string> dcontraString = dcontraObject;

            DVariant <object, string> dObjectString = (a) => $"{a} ";
            DVariant <object, object> dObjectObject = dObjectString;
            DVariant <string, string> dStringString = dObjectString;
            DVariant <string, object> dStringObject = dObjectString;
        }