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

C# 委托3

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

namespace detegateClass2
{
    class StudentDelegate
    {
        private int score;

        public delegate string DelegateResponse(int score);

        public DelegateResponse delegateInstance;

        public void setScore(int score)
        {
            this.score = score;

            if (score > 100 || score < 0)
            {
                Console.WriteLine("分数不正确");
            }
            else
            {
                string result;

                result = delegateInstance(score);//这里采用了委托的方法取代上个版本的接口的方法...
              
                Console.WriteLine("学生受到的回复数 : "+ result);
            }
        }
    }

    class TeacherDelegate
    {
        public string response(int score)
        {
            if (score > 60)
            {
                return "不错!! " + score + "分,是个好分数";
            }
            else
            {
                return "加油!! " + score + "分,证明你还有很大的进步空间!";
            }
        }
    }


    /// <summary>
    /// 这里采用委托的方法来模拟学生在考试后,收到来自家长.老师.同学等的回复的事情
    /// </summary>
    class DelegateClass
    {
        /// <summary>
        /// 委托代理的好处是现在做出动作的对象不用再继承接口了...更加的面向对象
        /// </summary>
        /// <param name="args"></param>

        public static void Main(string[] args)
        {
            StudentDelegate s = new StudentDelegate();
            TeacherDelegate t = new TeacherDelegate();

            //委托不同接口的体现在:委托包装的方法,,任何动作的接收方例如Student,不用再定义setX的方法了
            s.delegateInstance = new StudentDelegate.DelegateResponse(t.response);
            s.setScore(20);
 
        }
    }
}

 

分享到:
评论

相关推荐

    C#委托 C#委托 C#委托

    本文将深入探讨C#委托的概念、用途、类型以及如何使用`DynamicInvoke`方法。 ### 1. 委托的基本概念 委托是C#中的一个类,它封装了指向方法的引用。换句话说,委托就像一个指针,但它指向的是方法而不是内存地址。...

    C#多线程委托带参数

    *********************************************************...两个线程,利用委托更新主线程listBox1控件的内容,并将线程的名字传递过去 ***********************************************************************

    C#委托demo C#委托demo

    本文将深入探讨C#委托的概念、用法及其在实际开发中的应用。 一、什么是委托 委托在C#中是一种类型,类似于指针,但更加安全和灵活。它封装了一个或多个方法的引用,可以看作是“方法的句柄”。委托类型由系统定义...

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

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

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

    例如,`C#委托详解.pdf` 可能详细解释了委托的基本概念、用法以及如何结合匿名委托实现某些功能。而`委托与匿名委托.zip`可能包含了一些示例项目,你可以运行并查看其工作原理。 总的来说,掌握C#中的委托和匿名...

    C#委托和串行收发数据

    在C#中,委托是一种类型安全的函数指针,它可以引用一个或多个具有相同签名的方法。简单来说,它允许你将方法作为参数传递,或者作为一个新的方法来调用。委托的概念在事件驱动编程中尤为重要,因为它使你能够定义...

    C#委托与事件

    在C#编程语言中,委托和事件是两个非常重要的概念,它们构成了事件驱动编程的基础。...在实际项目中,结合文档《C#委托与事件.doc》的详细分析,初学者将更好地掌握这些概念,并能够在实践中得心应手。

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

    详解 C# 委托、事件与回调函数 委托是 C# 中一种非常重要的概念,它可以将方法作为参数传递给其他方法,也可以将方法作为返回值返回给其他方法。委托的定义是:delegate 返回类型 委托名(参数列表);例如:...

    C# 委托的讲解

    C#委托的概念类似于其他语言中的函数指针,但它更安全、类型安全,并且支持多播,即一个委托可以同时引用多个方法。 首先,我们来深入理解什么是委托。委托在C#中是一种引用类型,它定义了一种方法签名,这个签名...

    对C#委托及事件委托的理解

    C#中的委托是面向对象编程的一种强大特性,它允许我们将方法作为参数传递给其他方法,或者将多个方法链接在一起形成一个事件处理链。本文将深入探讨C#中的委托和事件委托的概念、用途以及它们的工作原理。 1. **...

    C# 委托简单实例

    在C#编程语言中,委托是一种强大的特性,它允许我们传递方法作为参数或者将方法存储在变量中。这个“C# 委托简单实例”是理解委托概念的基础教程,特别适合初学者入门。该实例的核心是通过委托来实现温度监控,包括...

    C#委托示例代码

    本示例代码将深入探讨C#委托的使用及其重要性。 首先,理解委托的基本概念是至关重要的。在C#中,委托是一种类型,它封装了指向静态或实例方法的指针。这使得我们可以将方法当作其他方法的参数,或者存储在类的字段...

    C#委托代码样例DelegateDemo

    在C#编程语言中,委托(Delegate)是一种强大的特性,它允许我们把方法作为参数传递,或者存储在变量中...在`DelegateDemo`这个示例项目中,你可能会看到如何在实际代码中应用这些概念,从而加深对C#委托和事件的理解。

    C# 委托 线程 事件的事例代码

    在C#编程中,委托、线程和事件是三个核心概念,它们对于构建高效、响应式的多任务应用程序至关重要。下面将详细阐述这三个概念及其相互之间的关系,并通过一个实例代码进行说明。 1. 委托(Delegate): 委托在C#中...

    C#委托类型简单使用

    C#委托类型简单使用

    C#委托的另一种写法

    接下来,我们将基于提供的代码片段深入分析C#委托的另一种实现方式,并讨论其实现原理及其应用场景。 ### 委托的基本概念 委托在C#中是一种引用类型的数据结构,它定义了方法的类型,使得可以将方法当作另一个方法...

    c#多线程利用委托更新控件内容

    C# 多线程利用委托更新控件内容 在 C# 编程中,多线程编程是常见的场景之一,特别是在需要实时更新控件内容的情况下。为了解决多线程之间的数据更新问题,本文将介绍如何使用委托(delegate)来更新控件的内容。 ...

    C#--委托和事件

    ### C#中的委托和事件 #### 一、委托的基础概念 在C#中,委托是一种引用类型的数据结构,它允许将方法当作参数进行传递。简而言之,委托就是指向一个方法的引用。委托的主要用途是作为事件处理程序的类型。 **...

Global site tag (gtag.js) - Google Analytics