/// <summary> /// 增订教材; /// </summary> /// <param name="sender">事件发送方</param> /// <param name="e">选课事件参数</param> public void AddBookOrder(object sender, SelectCourseEventArgs e) //注册至事件的函数的签名必须与委托定义一致; { this.BookOrderCount++; Student student = sender as Student; WriteLine($"\n已为学生{student.Name}增订教材,当前共需订购教材{this.BookOrderCount}本。"); }
public event SelectCourseEventHandler SelectCourseEvent; //定义事件;事件即多播委托;事件必须定义在类内部; /// <summary> /// 触发选课事件; /// </summary> /// <param name="courseName">课程名称</param> private void OnSelectCourse(string courseName) { var e = new SelectCourseEventArgs(courseName); this.SelectCourseEvent?.Invoke(this, e); //触发事件,即调用多播委托中注册的所有事件处理函数;事件必须在类内部触发;还需根据需要创建事件参数; }
/// <summary> /// 通知; /// </summary> /// <param name="sender">事件发送方</param> /// <param name="e">选课事件参数</param> public static void InformAfterSelectCourse(object sender, SelectCourseEventArgs e) //注册至事件的函数的签名必须与委托定义一致; { Student student = sender as Student; WriteLine($"\n发送短信至手机{student.PhoneNumber}:已成功选修《{e.CourseName}》。\n"); }