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

C# 委托2

阅读更多

不用委托思想的例子 : 

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

namespace detegateClass2
{
    class Student
    {
        private int score;

        private ResponseScore responseScore;


        /// <summary>
        /// 这里是用接口设置的方法来使具体业务调用抽象对象
        /// </summary>
        /// <param name="people"></param>
        public void setResponseScore(ResponseScore people)
        {
            responseScore = people;
        }

        public void setSocre(int value)
        {
            score = value;

            if (score < 0 || score > 100)
            {
                Console.WriteLine("分数不正确");
            }
            else
            {
                //学生究竟受到谁的答复呢?这个方法已经是业务类的了,它不需要知道具体的东西,但由于这个例子,我们不采用委托的思想,所以,这里我们采用接口 

                //string result = 接口.方法(参数) ;
                string result = responseScore.response(score);

                Console.WriteLine("学生收到的回复是: "+ result); //学生收到的回复!
            }
        }
    }

    /// <summary>
    /// 这里是一个业务类型的接口
    /// </summary>
    interface ResponseScore
    {
        string response(int score); //一个负责回复的方法
    }


    class Teacher : ResponseScore
    {
        public string response(int score)
        {
            if (score > 60)
            {
                return "不错 ! " + score + " 是一个好分数";
            }
            else
            {
                return "继续加油! 能考到" + score + "分,已经不错的了";
            }
        }
    }
    /// <summary>
    /// 在这个例子中我们模拟一个学生考试后,收到不同人物对他的评价,可以是老师,同学,家长,甚至警察,这里我们先不采用委托的放,我们先模拟一个接口
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Student s = new Student();

            ResponseScore t = new Teacher();

            s.setResponseScore(t);

            s.setSocre(80);
        }
    }
}

 

分享到:
评论

相关推荐

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

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

    C#委托demo C#委托demo

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

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

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

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

    在 C# 中,委托可以是泛型的,例如:delegate TResult ProcessDelegate, T2&gt;(T1 arg1, T2 arg2); 这个委托定义表示,它可以指向任何返回类型为 TResult,并且有两个参数 T1 和 T2 的方法。 委托的使用可以分为两步...

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

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

    C#委托和串行收发数据

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

    C#委托与事件

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

    C# 委托的讲解

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

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

    2. **委托与System.Delegate**: 委托是从`System.Delegate`类派生的,但不能直接从`System.Delegate`派生新的委托类型。C#提供了一种特殊的语法来声明和使用委托,使其成为一种易于使用的抽象类型。 3. **静态与...

    C# 委托简单实例

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

    C#委托示例代码

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

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

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

    C#委托代码样例DelegateDemo

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

    C#委托解决不同页面的传值问题

    C#委托技术有很多作用,以下是一个简单的实例完成C#委托解决不同对象之间的传值或者方法调用的问题: 假设想想实现以下功能: 从主窗体中创建2个子窗体,想把2个子窗体的信息发送到主窗体中,并在主窗体中显示,在子...

    C#委托类型简单使用

    C#委托类型简单使用

    C#委托的另一种写法

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

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

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

    C#--委托和事件

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

Global site tag (gtag.js) - Google Analytics