`
leoizumi
  • 浏览: 93026 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

C#委托的上机例子

阅读更多
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace detegateClass1
{
    class Student
    {
        private string name;

        private decimal score;

        public Student(string name, decimal score)
        {
            this.name = name;

            this.score = score;
        
        }

        /// <summary>
        /// 其中的一个比较方法,因为学生分数的比较,可能要比较多门学科,所以,这里这是列出其中的一们学科的比较方法。
        /// 委托就是要解决这种问题。
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>
        public static bool methodA(object a, object b) {

            Student sa = (Student)a;
            Student sb = (Student)b;

            return (sa.score > sb.score) ? true : false;
        
        }


        public override string ToString()
        {
            return string.Format(name+"  :  " + score);
        }
    }
}

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DelegateMethood = detegateClass1.Program.DelegateMethood;

namespace detegateClass1
{
    class ScoreSort
    {
        /// <summary>
        /// 这里采用冒泡比较法,由于比较的学科很多,所以要加入一个参数,要代表比较的是哪门的学科
        /// 由于这是一个"业务类",应该注重抽象的,不应涉及具体的东西,所以,这里可以用委托方法作为参数
        /// </summary>
        public static void sort(object[] array,DelegateMethood method) {

            for (int i = 0; i < array.Length; i++) {
                for (int j = i + 1; j < array.Length; j++) {
                    if (method(array[j], array[i])) {

                        object temp = array[i];
                        array[i] = array[j];
                        array[j] = temp;
                    
                    }
                }
             }
        
        }
    }
}

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace detegateClass1
{
    class Program
    {
        public delegate bool DelegateMethood(object a,object b);
        static void Main(string[] args)
        {
            Student[] students = { 
                                   new Student("A",100),
                                   new Student("B",90),
                                   new Student("C",80),
                                   new Student("D",70),
                                   new Student("E",60),
                                   new Student("F",50),
                                   new Student("G",40)
                                 
                                 };


            //在这里用定义的委托,进行方法的包装

            DelegateMethood dm = new DelegateMethood(Student.methodA);
            ScoreSort ss = new ScoreSort();

            for (int i = 0; i < students.Length; i++) {
                Console.WriteLine(students[i].ToString());
            }

            Console.ReadLine();


        }
    }
}

 

分享到:
评论

相关推荐

    c#委托事件异步例子

    在C#编程中,委托和事件是两种非常重要的特性,它们是实现面向对象设计的关键工具,尤其是对于构建异步应用程序。下面将详细讲解这两个概念及其在异步编程中的应用。 一、委托 委托在C#中可以被视为一种类型,它...

    C# 委托的例子-快速理解委托

    这个“C# 委托的例子-快速理解委托”主题将深入探讨委托的核心概念,帮助你快速掌握这一关键特性。 首先,我们来理解委托的基本定义。委托在C#中类似于指针,但它并不直接指向内存地址,而是指向一个方法。委托类型...

    C#委托示例,窗体之间传递数据例子,最简单的委托例子

    本人做的一个非常简单 C#委托的例子,很基础很简单的一个小例子,最最适合委托初学者参看。再结合资料,相信学通C#委托不是一件难事。 委托很好的解决了窗体之间的数据传递和方法调用,非常实用,通过这个例子相信能...

    自己做的一个C#委托的例子

    在这个例子中,我们将深入探讨C#委托的工作原理及其应用。 首先,让我们理解什么是委托。在C#中,委托是类的类型,它封装了指向一个或多个具有相同签名的方法的引用。委托可以被看作是事件处理程序的基石,因为它们...

    c#上机习题 c#上机习题

    以下是一些关于C#上机习题的相关知识点: 1. **控制台应用程序**:C#中的控制台应用程序是通过`System.Console`类进行交互的基础程序类型。在第一题中,我们需要创建一个控制台应用,利用特定公式计算`q`的近似值。...

    c#委托的使用简单例子

    标题“c#委托的使用简单例子”暗示我们将探讨如何在实际代码中应用委托。在C# 2005环境下,你可以创建一个Windows应用程序项目,然后使用委托来实现一些功能。虽然这里提到的是VS2005,但同样的概念也适用于后续版本...

    自己做的第二个C#委托的例子

    在这个"自己做的第二个C#委托的例子"中,我们将深入探讨委托的概念、如何声明和使用它们,以及它们在实际编程中的应用。 1. 委托的基本概念: 委托在C#中类似于函数指针,但更加安全和类型安全。它定义了一个方法...

    C#委托详解:匿名委托,委托的应用(含源代码)

    在C#编程语言中,委托扮演着至关重要的角色,它是一种类型安全的函数指针,允许我们传递方法作为参数或存储方法以供后续调用。本文将深入探讨C#中的委托,特别是匿名委托以及它们在实际应用中的用法,并提供相应的源...

    C# 委托和事件 (详细讲解)

    在C#编程语言中,委托和事件是两个关键的概念,它们是实现面向对象设计模式,尤其是事件驱动编程的核心。下面将详细阐述这两个概念及其在实际编程中的应用。 **委托** 委托在C#中相当于一种类型,它封装了指向方法...

    C# 委托事件简单的使用例子

    这是C# 委托与事件简单的使用例子。 只是为了初学者更好的接受委托与事件使用方法而已。 程序有两个窗体,一个是主窗体,一个是副窗体。 打开主窗体,在主窗体中点按钮后,打开副窗体,在副窗体中,可以调整主窗体...

    c#上机试题练习及答案

    在这些C#上机试题中,我们可以学习到多个核心知识点,包括条件判断、循环、异常处理、类与对象、属性、事件、数组操作、方法重载以及颜色操作等。下面我们将逐一深入探讨: 1. 条件判断与循环:题(1)要求找出1到...

    详解C#委托,事件与回调函数

    例如,在上面的例子中,我们可以将 ProcessDelegate 委托指向不同的方法,以达到不同的处理结果。 在 C# 中,委托可以是泛型的,例如:delegate TResult ProcessDelegate, T2&gt;(T1 arg1, T2 arg2); 这个委托定义表示...

    C#委托和串行收发数据

    在这个例子中,我们定义了一个名为`SerialDataReceivedEventHandler`的委托,用于处理接收到的数据。`SerialPort_DataReceived`方法是`DataReceived`事件的事件处理程序,它读取串口接收到的数据,并通过`...

    北大青鸟一期C#上机答案

    【C#语言基础】 C#,由微软公司开发,是一种面向对象的编程语言,广泛应用于...对于那些寻求深入学习C#的人来说,这份“北大青鸟一期C#上机答案”无疑是一份宝贵的资源,它能帮助他们巩固理论知识,提升编程技能。

    C#上机考试试题期末上机考试试题

    根据提供的文件内容,我们可以生成以下知识点: 1. C#基础语法 - C#语言的命名空间(namespace)...通过解决实际的上机考试题目,学生可以加深对C#语言的理解和应用能力,为之后进行更深入的.NET开发打下良好的基础。

    c# 上机实验七

    【C#上机实验七——深入理解C#与.NET框架】 在本次C#上机实验中,我们将基于《Visual C# .NET程序设计教程(第2版)》这本书的指导,由罗福强、白忠建和杨剑三位专家编著,深入探讨C#编程语言及其在.NET框架中的...

    C#委托与事件

    在C#编程语言中,委托和事件是两个非常重要的概念,它们构成了事件驱动编程的基础。本文将深入探讨这两个主题,并通过实例帮助初学者理解它们的工作原理。 首先,我们来看一下**委托**。委托在C#中可以被视为指向...

    ASP.NET程序设计教程C#版上机指导与习题解答资源

    ASP.NET程序设计教程C#版上机指导与习题解答资源是针对初学者精心编纂的一份学习资料,旨在帮助入门者快速掌握ASP.NET开发技术,特别是使用C#语言进行编程的方法。本教程包含了丰富的实例,使理论知识与实践操作相...

    C# 委托的讲解

    在C#中,委托是一种强大的工具,它允许你将方法作为参数传递,或者存储方法以便稍后执行。C#委托的概念类似于其他语言中的函数指针,但它更安全、类型安全,并且支持多播,即一个委托可以同时引用多个方法。 首先,...

Global site tag (gtag.js) - Google Analytics