第八章 委托与事件 读书心得
2012-02-09 00:29
197 查看
8
委托与事件一般情况下都是一起使用,事件是特殊化的委托。
委托:是一个可以对方法进行引用的类型。
委托类型一旦为委托定义了方法,委托将与该方法具有完全相同的行为,委托方法的调用和其他方法调用一样
具有参数和返回值,但分配给委托的方法必须与委托的返回类型和参数组成匹配。
特点:
委托是一种特殊对象类型:以前定义的对象包含数据,而委托只包含方法的地址。
委托类似于C++中的函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起。
方法不必与委托签名完全匹配。
例子:8.1 使用委托
View Code
class Program
{
public delegate void MyDelegate(string s);
static void Main(string[] args)
{
MyDelegate myDel = delegate(string j)
{
System.Console.WriteLine(j);
};
myDel("使用匿名方法实例化委托");
myDel = new MyDelegate(Program.DoWork);
myDel("不使用匿名方法实例化委托");
Console.ReadKey();
}
static void DoWork(string k)
{
System.Console.WriteLine(k);
}
}
运行结果:
![](http://images.cnblogs.com/cnblogs_com/lijie007jh/a5.jpg)
例子8.6 使用Lambda表达式
委托与事件一般情况下都是一起使用,事件是特殊化的委托。
委托:是一个可以对方法进行引用的类型。
委托类型一旦为委托定义了方法,委托将与该方法具有完全相同的行为,委托方法的调用和其他方法调用一样
具有参数和返回值,但分配给委托的方法必须与委托的返回类型和参数组成匹配。
特点:
委托是一种特殊对象类型:以前定义的对象包含数据,而委托只包含方法的地址。
委托类似于C++中的函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起。
方法不必与委托签名完全匹配。
例子:8.1 使用委托
View Code
class Program
{
public delegate void MyDelegate(string s);
static void Main(string[] args)
{
MyDelegate myDel = delegate(string j)
{
System.Console.WriteLine(j);
};
myDel("使用匿名方法实例化委托");
myDel = new MyDelegate(Program.DoWork);
myDel("不使用匿名方法实例化委托");
Console.ReadKey();
}
static void DoWork(string k)
{
System.Console.WriteLine(k);
}
}
运行结果:
![](http://images.cnblogs.com/cnblogs_com/lijie007jh/a5.jpg)
例子8.6 使用Lambda表达式
相关文章推荐
- (每日心得)关于C#中委托和事件的一些认识(二)
- 我今天的工作日志——关于事件委托的一点心得体会
- Asp.net开发心得点滴[动态加载的用户控件使用事件委托,交给页面处理的事件无效问题]
- (每日心得)关于C#中委托和事件的一些认识(三)
- c#委托与事件 心得
- 第八章 委托,lamdbda 表达式和事件
- (每日心得)关于C#中委托与事件的一些认识(一)
- 《C#高级编程》【第八章】委托、lambda表达式和事件 -- 学习笔记
- pp看书笔记---C#高级编程第九版 第八章 【委托、Lambda表达式和事件】
- 对事件与委托的理解(4) 心得
- 委托和事件
- c#中的delegate(委托)和event(事件)
- 委托与事件
- C#之委托和事件
- JQuery中的事件委托机制:delegate和undelegate
- C# 中的委托和事件(下)_转载
- 原生js事件委托
- [z] c#多线程通信之委托(事件)
- 事件委托例子1