收录日期:2019/01/21 20:16:37 时间:2016/07/26 20:16:48 标签:C#
委托是什么东西?可以 public event事件名 as 委托名 这样吗?
我用上as就报错 网上搜了一下, 好像也没有 as XXdelegate.

这里是题目要求, 我真是不明白再说什么。

把学校的人员结构抽象成University类,要求此类中包含方法、事件、属性等。用代码实现抽象(只需要定义)其中,包括学生和教师成员,抽象出Student类和Teacher类,Teacher类里包含了授课方法,Student类里包含学习方法,学生m_students和教师m_teachers是两种独立的对象,可用property语句声明属性。事件包括开学和放假。可参考以下事件名称:
开学事件TermBeginsEvent
放假事件TermEndsEvent
定义事件的语法为“public event事件名 as 委托名”,如“public event TermBeginsEvent as EventHandler”表示开学事件的定义)。


最后我自己写成了这样, 请各位看看是不是题目的要求:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Task_ch07
{
    public class University
    {
        Student m_students;
        public Task_ch07.Student Students
        {
            get { return m_students; }
            set { m_students = value; }
        }
        Teacher m_teachers;
        public Task_ch07.Teacher Teachers
        {
            get { return m_teachers; }
            set { m_teachers = value; }
        }
       
        

        event EventHandler TermBeginsEvent;
        event EventHandler TermEndsEvent;

        public University(){

            TermBeginsEvent += new EventHandler(TermBeginsEvent1);
            TermEndsEvent += new EventHandler(TermEndsEvent1);
        }

        public void TermBeginsEvent1(Object sender, EventArgs e)
        {
            Console.WriteLine("开学");
        }
        public void TermEndsEvent1(Object sender, EventArgs e)
        {
            Console.WriteLine("放假");
        }

    }


    
    public class Student 
    {
        public void haveClass()
        {
            Console.WriteLine("上课");
        }
    }


    public class Teacher 
    {
        public void teachClass()
        {
            Console.WriteLine("授课");
        }

    }
}



event都可以通过delegate来完成。
event强调了事件。通过订阅事件来获得通知
delegate则泛指符合某种格式的函数
EventHandler 是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。
EventHandler 委托
TermBeginsEvent += new EventHandler(TermBeginsEvent1);
.“+=”为此事件添加一个委托,这个委托代表一个事件处理方法。
刚刚去C/C++板块转了圈

发现那全是些精深的算法题

和这儿完全不一样

唉......
你的意思就是  根本就没有as这种?
你可以把委托看成是一个容器
这个容器是用来装方法的
“调用”一下这个容器,容器内的方法就全被执行了
简单一点来说,你可以把委托动作是函数指针(因为C#中没有函数指针)。
该回复于2010-09-10 10:14:36被版主删除
public event TermBeginsEvent as EventHandler
是VB.net的语法

该回复于2010-09-10 10:14:36被版主删除
引用 2 楼 zxp8819 的回复:
刚刚去C/C++板块转了圈

发现那全是些精深的算法题

和这儿完全不一样

唉......


如果有机会我告诉你什么叫做装学生。
委托就是方法的引用,只要是符合委托定义的条件,什么方法都可以,一般它和事件结合起来使用较多。
委托就是一种引用类型,指向特定签名的函数
委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值
MSDN自己查啊,里面讲的很详细。。。
委托 简单说就是把方法作为参数传给另一个方法

http://blog.csdn.net/xiaogui340/archive/2010/08/30/5849509.aspx

一个简单的介绍,你可以看下
引用 9 楼 sp1234 的回复:
引用 2 楼 zxp8819 的回复:
刚刚去C/C++板块转了圈

发现那全是些精深的算法题

和这儿完全不一样

唉......


如果有机会我告诉你什么叫做装学生。
对于C#,如果不明白委托是怎么回事,可以搜索

张子阳 委托

我觉得张子阳对于委托的那篇博客文章写得很好,至少让我明白了

如果看了张子阳的委托文章,还不明白委托,我想应该是你的基础不牢了

哪就再去补补基础,做些项目

感谢张子阳,让我突然在甘一天就明白了委托

感谢CSDN里像张子阳哪样的高手,因为你们,让我成长了
张子阳的文章在哪儿呀?给个地址?
引用 16 楼 shangxl 的回复:
张子阳的文章在哪儿呀?给个地址?


难道你不会搜索

百度,谷哥,都不会用吗?
委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值
MSDN自己查啊,里面讲的很详细。。。

请教高手关于j2me数据库过滤器接口的使用!!给100 dropdownlist(WEB控件)的事件 如何确定以下需求分析的Use Case 模型???? 怎样防止整个IE的画面就会变得透明闪烁 硬盘数据恢复(分区表已坏)——在线等 请教一个关于车辆搜索路线的问题 如何将图片的一部分扩大 请各位高人指点! 请教高手,看看我的程序,为什么数据不能提交 IIS问题!急3!!!!! 如何确定以下需求分析的Use Case 模型???? 远程监控中如何实现监控点向监控中心服务器发送数据? 寻找一个学习站点!国外的! 如何确定以下需求分析的Use Case 模型???? JSP入门应该看些什么书? 在线等———怎样控制 textbox 的大小? 正则表达式的问题 如何确定以下需求分析的Use Case 模型???? 工具栏 高分悬赏:关于PB9遇到的一个怪问题,项目已经无法进行了,向高手求救!!————(分不够再加) 如何确定以下需求分析的Use Case 模型???? 请问,我在WIN98下的SQL7。0的怪问题 我在用Dbchart时遇到一个怪问题? Response.Write有关的错误 如何确定以下需求分析的Use Case 模型???? delphi7,如何操作listbox中的item,当单击某项后弹出窗体。 哪位大哥大姐知道getActionCommand()方法什么意思? 高手们是不是都睡觉去了,这个问题我贴了几次,没人给我答案,郁闷啊 如何确定以下需求分析的Use Case 模型???? 窗体移动问题?