c#用委托来实现事件通知机制。委托相当与c++函数指针。整个过程涉及一个呼叫者,一个被呼叫者,还有就是这个委托。
- 实现步骤
有以下几步: 1. 申明委托, 2.定义呼叫者和调用的函数, 3.定义被呼叫者和具体实现的函数(被调用的函数)
1.申明委托 ,在包里或者类里,public
public
delegate
void
PlayGame(
Object sender, EventArgs e);
2.定义呼叫者(类LetsGame)和调用委托的函数,在呼叫者里要有委托的实例(呼叫者扔出一个委托,被呼叫者给这个委托赋值)
class
LetsGame{
public
event
PlayGame theGame;
public
void
startPlay(EventArgs e){
if
(theGame
!=
null
){
theGame(
this
,e);
}
}
3. 定义被呼叫者(类MS)和具体实现的函数(被调用的函数),也就是concrete class的实现或者叫函数指针实例。打个比方,在一个叫MS的类中实现.MS中对呼叫者中委托的实例进行赋值.
class
MS {
public
MS(LetsGame lg) {
lg.theGame
+=
new
PlayGame(MSPlayGame);
}
public
void
MSPlayGame(Object sender, EventArgs e){
Console.WriteLine(
"
Who laughs the last who wins
"
);
}
}
这样当调用LetsGame.startPlay的时候就会调用MS.MSPlayGame.
分享到:
相关推荐
在C#编程语言中,委托和事件是两个非常重要的概念,它们构成了事件驱动编程的基础。...在实际项目中,结合文档《C#委托与事件.doc》的详细分析,初学者将更好地掌握这些概念,并能够在实践中得心应手。
C#委托与事件的传递与封装案例 C#委托是指一种引用类型,可以封装任意返回类型和参数列表的方法。委托可以作为方法的参数传递,也可以作为事件的处理函数。下面是关于C#委托的详细知识点: 1. 声明委托:使用...
在C#编程语言中,委托和事件是两个关键的概念,它们是实现面向对象设计模式,尤其是事件驱动编程的基础。本文将深入探讨这两个概念,并通过一个简单的示例来帮助理解。 首先,我们来看“委托”。在C#中,委托是一种...
### C#中的委托与事件关系解析 #### 一、引言 在面向对象编程语言C#中,委托(Delegate)和事件(Event)是两个重要的概念。本文将深入探讨这两者之间的关系及其在实际开发中的应用。 #### 二、委托(Delegate) ...
C# 委托与事件的概念及理解 委托是 C# 中一个非常重要的概念,它可以看作是一个函数指针,能够引用对象方法,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个对象方法,将其作为它构造函数的...
本文将深入探讨C#中的委托与事件,并通过实例来帮助理解它们的工作原理和使用场景。 首先,我们来了解什么是委托。在C#中,委托是一种类型安全的指针,它可以指向一个方法。换句话说,委托可以被视为能够存储方法的...
委托(Delegate)和事件(Event)是C#中非常重要的两种机制,它们在.NET框架中扮演着极其重要的角色。理解这两种概念,对于深入学习C#编程语言,构建高效、可维护的程序架构至关重要。首先我们来探讨一下委托的概念...
在.NET框架中,C#语言提供了强大的特性来处理方法的调用,这就是委托和事件。这两者都是基于面向对象设计模式的重要组成部分,特别是...通过阅读"C#委托与事件.pdf"文档,可以更深入地学习这两个主题的细节和最佳实践。
### 举例说明C#委托与事件 #### 一、引言 在.NET Framework中,委托与事件是非常重要的概念。对于初学者来说,理解和掌握这两者可能会遇到一定的挑战。本文将通过具体的例子,深入浅出地讲解C#中的委托与事件。 ##...
### C#委托与事件的理解与应用 在C#编程中,**委托(Delegate)**与**事件(Event)**是两个非常重要的概念,它们在处理异步操作、解耦对象间通信等方面扮演着核心角色。下面,我们将通过一个具体示例来深入探讨这...
在C#编程语言中,委托和事件是两个关键的概念,它们是实现面向对象设计模式,尤其是事件驱动编程的基础。本文将深入探讨这两个概念,并通过实际的代码示例...希望这些实例代码能帮助你更好地掌握和应用C#的委托与事件。
### C#中的委托与事件详解 #### 一、引言 在.NET Framework中,委托与事件是非常重要的概念,尤其对于那些需要实现回调机制的应用场景来说更是如此。虽然这些概念对于初学者来说可能有些抽象和难以理解,但一旦...
这是C# 委托与事件简单的使用例子。 只是为了初学者更好的接受委托与事件使用方法而已。 程序有两个窗体,一个是主窗体,一个是副窗体。 打开主窗体,在主窗体中点按钮后,打开副窗体,在副窗体中,可以调整主窗体...
`EventHandler<TEventArgs>`是一个预定义的泛型委托,它接受一个`object`参数(通常是事件源)和一个`TEventArgs`参数,其中`TEventArgs`是一个派生自`EventArgs`的类,用于传递与事件相关的数据。例如,`Click`事件...