zoukankan      html  css  js  c++  java
  • c# 泛型委托

    泛型委托

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _09泛型委托
    {
        //限定比较的条件
        public delegate int DelCompare<T>(T t1, T t2);//泛型委托
        class Program
        {
            static void Main(string[] args)
            {
                int[] nums = { 1, 2, 3, 4, 5, 6, 7 };
                string[] names = { "张三", "李FatSoFat shit", "王五" };
    
                Person[] pers = { new Person() { Name = "张三", Age = 19 }, new Person() { Name = "李四", Age = 20 }, new Person() { Name = "王五", Age = 22 } };
    
    
    
                string max1 = GetMax<string>(names, (s1, s2) => { return s1.Length - s2.Length; });
                int max2 = GetMax<int>(nums, (n1, n2) => { return n1 - n2; });
                Person max3 = GetMax<Person>(pers, (p1, p2) => { return p1.Age - p2.Age; });
                Console.WriteLine(max1);
                Console.WriteLine(max2);
                Console.WriteLine(max3.Age);
                Console.ReadKey();
    
            }
    
            static T GetMax<T>(T[] nums, DelCompare<T> del)//外面传进来一个比较的方式
            {
                T max = nums[0];
                for (int i = 0; i < nums.Length; i++)
                {
                    //委托 : max-nums[i]
                    if (del(max, nums[i]) < 0)//比较的方式 if(nums[i]>max)
                    {
                        max = nums[i];
                    }
                }
                return max;
            }
        }
        class Person
        {
            public int Age { get; set; }
            public string Name { get; set; }
        }
    }
  • 相关阅读:
    [BZOJ3043]IncDec Sequence
    【NOIP2015】字串
    [NOIP]2016天天爱跑步
    【NOIP2015】运输计划
    [poj3565]Ants
    【ZOJ2760】How Many Shortest Path
    [POJ3281] Dining
    P1077摆花
    校内测之zay与银临 (day2)
    P1880石子合并
  • 原文地址:https://www.cnblogs.com/suanshun/p/7001679.html
Copyright © 2011-2022 走看看