public static void Main()
 {
     var del = new StringDelegate<string>(PrintString); // triabva da se ukaje v diamantentie skobi kakav ste bade parametara na Generic delegata
     var md = new GenericDelegates(); // instancia na tekustia klas(sazdavam obekt)
     del += md.PrintStringLength;
     var result = del("Pesho");
     Console.WriteLine(result); // ste otpechata 2- rezultata ot poslednia method, a otgore ste otpechata komandite ot vseki method
 }
예제 #2
0
    public static void Main()
    {
        var del = new StringDelegate <string>(PrintString); // triabva da se ukaje v diamantentie skobi kakav ste bade parametara na Generic delegata
        var md  = new GenericDelegates();                   // instancia na tekustia klas(sazdavam obekt)

        del += md.PrintStringLength;
        var result = del("Pesho");

        Console.WriteLine(result); // ste otpechata 2- rezultata ot poslednia method, a otgore ste otpechata komandite ot vseki method
    }
예제 #3
0
        private static void Main(string[] args)
        {
            string returnValue = null;
            string name        = "Name";
            //XName environment = "SYSTare";
            //string reportName = "CognnosHPCReport";
            //string URL = GetCognosUrl(environment, reportName);
            //// Look for the name in the connectionStrings section.
            //ConnectionStringSettings settings =
            //    ConfigurationManager.ConnectionStrings[name];

            //// If found, return the connection string.
            //if (settings != null)
            //    returnValue = settings.ConnectionString;
            int  empId;
            char cont = 'Y';

            while (cont == 'Y')
            {
                empId = GetEmployeeIdFromUser();

                //Employee Personal Details
                EmpPersonalDetails personalDetails = new EmpPersonalDetails();

                Console.WriteLine("Year End bonus for Employee {0} is {1}",
                                  personalDetails.GetEmployeeDetails(empId).Name, personalDetails.CalculateYearEndBonus(empId, 12));

                Console.WriteLine("Duration Worked by Employee {0} is {1}",
                                  personalDetails.GetEmployeeDetails(empId).Name, personalDetails.GetDurationWorked(empId));

                //Employee PF
                EmpPfDetails pfDetails = new EmpPfDetails(new EmpPersonalDetails());

                Console.WriteLine("Employer Contribution for Employee {0} is {1}",
                                  personalDetails.GetEmployeeDetails(empId).Name, pfDetails.GetPfEmployerControlSofar(empId));

                //Employee Benefits
                EmpBenefits empBenefits = new EmpBenefits(new EmpPersonalDetails());
                Console.WriteLine("Benefits of Employee with grade {0} are:",
                                  personalDetails.GetEmployeeDetails(empId).Grade);

                foreach (var benefit in empBenefits.GetBasicBenefits(empId))
                {
                    Console.Write(benefit + "  ");
                }
                Console.WriteLine();
                Console.WriteLine("Press Y is you want to continue");
                cont = Convert.ToChar(Console.ReadLine());

                GenericDelegates dg = new GenericDelegates();
                int d = dg.UseGenericDelegates;
            }
        }
예제 #4
0
        public static Task Then <T1, T2>(this Task task, Action <T1, T2> successor, T1 arg1, T2 arg2)
        {
            switch (task.Status)
            {
            case TaskStatus.Faulted:
            case TaskStatus.Canceled:
                return(task);

            case TaskStatus.RanToCompletion:
                return(FromMethod(successor, arg1, arg2));

            default:
                return(GenericDelegates <object, object, T1, T2, object> .ThenWithArgs(task, successor, arg1, arg2));
            }
        }
예제 #5
0
        public static Task <TResult> Then <TResult, T1>(this Task <TResult> task, Func <Task <TResult>, T1, Task <TResult> > successor, T1 arg1)
        {
            switch (task.Status)
            {
            case TaskStatus.Faulted:
            case TaskStatus.Canceled:
                return(task);

            case TaskStatus.RanToCompletion:
                return(FromMethod(successor, task, arg1));

            default:
                return(GenericDelegates <TResult, Task <TResult>, T1, object, object> .ThenWithArgs(task, successor, arg1)
                       .FastUnwrap());
            }
        }
예제 #6
0
        public static Task Then <T1, T2, T3>(this Task task, Func <T1, T2, T3, Task> successor, T1 arg1, T2 arg2, T3 arg3)
        {
            switch (task.Status)
            {
            case TaskStatus.Faulted:
            case TaskStatus.Canceled:
                return(task);

            case TaskStatus.RanToCompletion:
                return(FromMethod(successor, arg1, arg2, arg3));

            default:
                return(GenericDelegates <object, Task, T1, T2, T3> .ThenWithArgs(task, successor, arg1, arg2, arg3)
                       .FastUnwrap());
            }
        }
예제 #7
0
        public static Task <TResult> Then <T, T1, TResult>(this Task <T> task, Func <T, T1, TResult> successor, T1 arg1)
        {
            switch (task.Status)
            {
            case TaskStatus.Faulted:
                return(FromError <TResult>(task.Exception));

            case TaskStatus.Canceled:
                return(Canceled <TResult>());

            case TaskStatus.RanToCompletion:
                return(FromMethod(successor, task.Result, arg1));

            default:
                return(GenericDelegates <T, TResult, T1, object, object> .ThenWithArgs(task, successor, arg1));
            }
        }
예제 #8
0
        public static Task Then <T1>(this Task task, Action <T1> successor, T1 arg1)
        {
            switch (task.Status)
            {
            case TaskStatus.Faulted:
                return(FromError(task.Exception));

            case TaskStatus.Canceled:
                return(Canceled());

            case TaskStatus.RanToCompletion:
                return(FromMethod(successor, arg1));

            default:
                return(GenericDelegates <object, object, T1, object> .ThenWithArgs(task, successor, arg1));
            }
        }
예제 #9
0
        public static Task Then<T1, T2>(this Task task, Func<T1, T2, Task> successor, T1 arg1, T2 arg2)
        {
            switch (task.Status)
            {
                case TaskStatus.Faulted:
                    return FromError(task.Exception);

                case TaskStatus.Canceled:
                    return Canceled();

                case TaskStatus.RanToCompletion:
                    return FromMethod(successor, arg1, arg2).FastUnwrap();

                default:
                    return GenericDelegates<object, Task, T1, T2>.ThenWithArgs(task, successor, arg1, arg2)
                                                                 .FastUnwrap();
            }
        }
예제 #10
0
 public static void GenericDelegate() => GenericDelegates.GenericDelegateDemo();