标准的事件和委托声明写法:
// 定义委托
public delegate void PicChangeHandler(object sender, PicChangeEventArgs args);
/// <summary>
/// 声明切换图片事件
/// </summary>
public static event PicChangeHandler PicChange;
/// <summary>
/// 调用图片切换事件函数
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
public void OnPicChange(object sender, PicChangeEventArgs args)
{
if (PicChange != null)
{
PicChange(this, args);
}
}
/// <summary>
/// 自定义切换图片事件参数类型,根据需要可设定多种参数便于传递
/// </summary>
public class PicChangeEventArgs : EventArgs
{
private Cursor m_cur;
public Cursor Cur
{
get { return m_cur; }
set { m_cur = value; }
}
private PictureEntry m_pic;
public PictureEntry Pic
{
get { return m_pic; }
set { m_pic = value; }
}
public PicChangeEventArgs(Cursor c1, PictureEntry p1)
{
Cur = c1;
Pic = p1;
}
}
触发事件:
// 触发事件, 传递自定义参数
OnPicChange(this, new PicChangeEventArgs(this.pictureBox.Cursor, pic));
调用事件:
RisImageViewer.PicChange += new RisImageViewer.PicChangeHandler(OnPicChange);
public void OnPicChange(object sender, FounderSoft.RISClient.WinForms.RisImageViewer.PicChangeEventArgs args)
{
PictureListItem nextPicItem = new PictureListItem(args.Pic.Pic);
}
分享到:
相关推荐
C#是一种广泛应用于软件开发的面向对象的编程语言,由...继续深入学习,如委托、事件、属性、构造函数等,将有助于你成为更熟练的C#开发者。在实践中不断练习,理论结合实际,你会逐渐熟悉并掌握C#这门强大的编程语言。
在C#编程语言中,委托和事件是两个关键的概念,它们是实现面向对象设计模式,尤其是事件驱动编程的基础。本文将深入探讨这两个概念,并结合匿名方法的使用,以帮助你全面理解C#中的这些核心特性。 ### 委托 **1. ...
这种模式在很多编程语言中都有应用,包括iOS的Swift和Objective-C,以及C#等。在这个"Delegation委托写法项目实例"中,我们将探讨如何通过自定义方法调用来实现委托,以及在实际项目中如何有效地使用它。 首先,...
C#委托与匿名委托详解 C#中的委托是一种特殊的类型,它可以视为一个方法...委托和匿名委托是C#语言中非常重要的概念,它们可以帮助我们更好地组织代码、简化程序的设计和实现,并且可以提高程序的可读性和可维护性。
例如,下面是一个名为`MyDelegate`的简单委托声明: ```csharp public delegate void MyDelegate(string message); ``` 这个委托定义了一个不带返回值但接受一个字符串参数的方法签名。 ### 2. 委托的实例化 要...
1. **委托声明** 声明委托类似于声明方法,但不包含方法体。例如: ```csharp public delegate string GetAString(); ``` 这里定义了一个名为`GetAString`的委托,它表示返回字符串类型的方法。委托的定义通常...
总之,委托是C#中的一种强大的工具,它提供了方法作为参数传递、事件处理和回调机制等功能,极大地增强了代码的灵活性和可扩展性。通过阅读和分析提供的源代码,你可以更深入地理解这些概念,并将其应用到实际项目中...
9. **Lambda表达式**:简化匿名函数的写法,常用于LINQ查询和事件处理。 10. **.NET框架**:C#是.NET框架的一部分,提供了大量的类库,如System.IO(文件系统操作)、System.Net(网络通信)和System.Drawing(图形...
理解变量声明、初始化和作用域是学习C#的第一步。 2. 控制流:掌握if语句、switch语句、循环(for、while、foreach)以及跳转语句(break、continue)等控制结构。 3. 函数:学习如何定义和调用函数,包括参数传递、...
2. **委托与事件**:委托是类型安全的函数指针,常用于实现事件处理。事件是发布者和订阅者之间的通信机制。 3. **Lambda表达式**:简化匿名函数的写法,常用于LINQ查询。 4. **匿名方法**:未命名的方法体,常...
在C#中,Lambda表达式可以与委托类型结合使用,如`Func`和`Action`。`Func`用于表示有返回值的函数,而`Action`用于表示无返回值的函数。例如,`Func, int, int>`表示接受两个整数并返回一个整数的委托类型,这与...
在C#编程中,事件是一种通信机制,它允许对象向其他对象发送通知,而不必知道接收方的确切身份。...本篇文章将深入探讨如何利用C#事件在...在实际开发中,可以根据具体需求设计事件和参数类型,以满足各种复杂的交互场景。
10. **委托和事件**:委托是类型安全的函数指针,常用于事件处理。事件则是发布者向订阅者传递信息的一种方式,常见于UI编程。 11. **垃圾回收**:C#使用垃圾回收机制管理内存,自动回收不再使用的对象,减轻了...
9. **泛型委托和Lambda表达式**:C#支持泛型委托,如Action和Func,Lambda表达式则是简洁的匿名函数写法,两者结合常用于简化代码,尤其是配合LINQ使用。 10. **异构编程和.NET互操作性**:C#可以通过COM互操作、P/...
6. **事件和委托**:C#的事件和委托机制是实现组件间通信的关键,常用于UI编程,如按钮点击事件。 7. **异步编程**:C#的async/await关键字使得异步编程更加简洁,可以编写出非阻塞的I/O密集型或计算密集型任务。 ...
- 委托和事件:用于实现回调和事件驱动编程。 9. **单元测试**: - 使用 MSTest、NUnit 或 xUnit 进行单元测试,确保代码质量。 通过本模拟试卷,你可以全面复习C#的关键概念和技术,提升编程能力和问题解决能力...
7. **委托与事件**:理解委托的用途,如何创建和使用,以及事件的声明和订阅,这是实现异步编程和UI交互的关键。 8. **多线程**:C#中的Thread类和Task类用于处理并发和多任务执行,了解Mutex、Semaphore、Monitor...
4. **委托与事件**:C#的委托和事件机制使得异步编程和回调函数的实现变得简单,书中会讲解它们的工作原理和应用场景。 5. **Lambda表达式与LINQ**:C#引入了lambda表达式,简化了匿名函数的写法,同时配合LINQ...
8. **委托与事件**:理解C#的事件驱动编程模型,学习如何使用委托和事件处理函数,实现组件间的通信。 9. **Lambda表达式与LINQ**:掌握Lambda表达式的简洁写法,以及如何利用LINQ进行查询操作,提升代码的可读性和...
5. **委托与事件**:委托是C#中的一种类型,可以引用方法,类似于函数指针。事件是委托的一种特殊使用,常用于UI编程中的异步操作处理。 6. **Lambda表达式与Linq**:Lambda表达式简化了匿名函数的写法,是 LINQ...