中易网

c#委托的用处: 我仅仅知道委托是将方法作为参数,求进一步指导

答案:2  悬赏:40  
解决时间 2021-02-26 10:22
c#委托的用处: 我仅仅知道委托是将方法作为参数,求进一步指导
最佳答案
public delegate bool ComparisonHandler(int first, int second);//委托类型的声明

    class BubbleSort1
    {
        public static bool GreaterThan(int first, int second)//升序排序
        {
            return first > second;
        }

        public static bool LessThan(int first, int second)//降序排序
        {
            return first < second;
        }

        public static void BubbleSort(int[] items, ComparisonHandler comparisonMethod)
        {
            int i, j, temp;

            if (items == null)
            {
                return;
            }
            if (comparisonMethod == null)
            {
                throw new ArgumentNullException("comparisonMehtod is NULL !");
            }
            for (i = items.Length - 1; i >= 0; i--)
            {
                for (j = 1; j <= i; j++)
                {
                    if (comparisonMethod(items[j - 1], items[j]))
                    {
                        temp = items[j - 1];
                        items[j - 1] = items[j];
                        items[j] = temp;
                    }
                }
            }
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            int intcount;
            Console.WriteLine("Please input the count of an Integer to sort which the sequence number:");
            intcount = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("
Please input an Integer to sort sequence:");
            int[] items = new int[intcount];
            for (int i = 0; i < intcount; i++)
            {
                items[i] = Convert.ToInt32(Console.ReadLine());
            }

            ComparisonHandler comparisonMethod = BubbleSort1.GreaterThan;
            BubbleSort1.BubbleSort(items, comparisonMethod);

            Console.WriteLine("
The sorting method in the calling class BubbleSort1 sorted sequence of integers as follows:");
            Console.WriteLine("
Ascending Order:");
            for (int i = 0; i < intcount; i++)
            {
                Console.Write(items[i] + " ");
            }
            Console.ReadKey();

            ComparisonHandler comparisonMethodLess = BubbleSort1.LessThan;
            BubbleSort1.BubbleSort(items, comparisonMethodLess);

            Console.WriteLine("
");

            Console.WriteLine("Descending Order:");
            for (int i = 0; i < intcount; i++)
            {
                Console.Write(items[i] + " ");
            }
            Console.ReadKey();
        }
    }
    
 //一个委托实例;追问这么长追答这只是一个小Demo,里面没有多少内容的,就是一个数组的排序;
只说概念有点抽象,这个Demo便于理解概念。
全部回答
动态调用方法时方便。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的世界骨头哪来的???
在怎么把多个wma文件按顺序合并成一个
麦当劳试工
求一个东北财经大学社会实践调查表空白表格
民政所跟民政局一样么
windows10系统怎么关闭触摸键盘
江苏海安农村商业银行海北支行这个地址在什么
MERCURY-A8CE60的密码是
成都明宇丽雅饭店在什么地方啊,我要过去处理
请问杭州哪个画室比较知名?介绍个
陕北最冷的季节是什么时候
周春凤紫砂壶值多少钱
从海洲去沙溪汽车站怎么坐车
建造师和注册电气工程师哪个好啊
周记一般都是拿什么本子写的?
推荐资讯
20十50=70因为()十()=()所以20十50=()
蜗小蜜是韩国的面膜吗?
What time is it ,please?的同意句
自由幻想小号交易额超过限制,下线金币会被系
库代克买里地址在什么地方,想过去办事
进击的巨人第二季漫画从第几卷
香园坛肉饺子馆地址在什么地方,想过去办事
屏碎了,不影响操作去送修淘宝安全吗?魅蓝no
文公敖包地址在哪,我要去那里办事
08122225007是攀枝花哪里的号码啊?
我头发比较硬 容易竖起来 适合什么发型 我以
断路器的操动机构不能分闸的原因
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?