委托的声明与实例化使用
2009-11-13 20:53
211 查看
系统访问数据或调用方法有两种操作方式:一种是通过名称访问或调用,另一种是通过所在的内存地址来访问调用。为了系统的安全与稳定,NET Framework的CLR库不允许程序通过指针来直接操作内存中数据或方法,而是通过托管机制 来访问内存中数据或调用内存中的方法。委托就是C#提供的一种以托管机制调用方法的特殊数据类型
,其作用于房屋租凭中介机构类似。
委托声明
委托是一种引用型的数据类型,在C#中使用关键字delegate声明委托。声明委托的一般形式是:
[访问修饰符] delegate 返回值类型 委托名称 (参数列表)
委托实例化
因为委托是一种特殊的数据类型,因此必须实例化之后才能用来引用方法,实例化委托的一般形式如下:
委托类型(名称) 委托变量名 = new 委托型构造函数(委托要引用的方法名)
,其作用于房屋租凭中介机构类似。
委托声明
委托是一种引用型的数据类型,在C#中使用关键字delegate声明委托。声明委托的一般形式是:
[访问修饰符] delegate 返回值类型 委托名称 (参数列表)
委托实例化
因为委托是一种特殊的数据类型,因此必须实例化之后才能用来引用方法,实例化委托的一般形式如下:
委托类型(名称) 委托变量名 = new 委托型构造函数(委托要引用的方法名)
using System; public delegate int Caculate(int x,int y); //声明委托 public class CaculateOfNumber { public Caculate handler; //声明一个委托的字段 public int Product(int x, int y) { return x * y; } public int Average(int x, int y) { return (x + y) / 2; } } public class Test { static void Main() { int a = 5, b = 6; CaculateOfNumber cn = new CaculateOfNumber(); cn.handler = new Caculate(cn.Product); // 初始化委托型字段 Console.WriteLine("{0}与{1}的乘积为{2}", a, b, cn.handler(a, b)); cn.handler = new Caculate(cn.Average); Console.WriteLine("{0}与{1}的平均值为{2}", a, b, cn.handler(a, b)); } }
相关文章推荐
- 如何:声明、实例化和使用委托(C# 编程指南)
- 如何:声明、实例化和使用委托(C# 编程指南)
- 如何:声明、实例化和使用委托(C# 编程指南)GOOD
- .NET C# 声明、实例化和使用委托以及委托在 C# 中的发展
- 建议36:使用FCL中的委托声明
- 委托的声明和使用
- *使用Delphi对象(声明、实例化、构造、释放)
- [Unity&C#&委托事件&未实例化]使用委托事件的时候事件对象未实例化
- 使用泛型委声明来动态指派委托的返回类型
- 编写高质量代码改善C#程序的157个建议——建议36:使用FCL中的委托声明
- 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]
- 不是什么时候都可以用栈来声明对象并使用(自动释放)——Delphi里到处都是编译器魔法,并且自动帮助实例化界面元素指针
- 如何声明和使用 Func<T1, T2, TResult> 委托
- 如何声明、实例化和调用委托。
- 委托声明----委托实例化-----委托调用
- 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]
- 如何使用前置声明取代包括头文件
- iPhone开发之Delegate(代理、委托)的理解和使用
- C++中前置声明的使用
- C# winform界面在线程中使用委托不断刷新界面 异常 使用委托{"未将对象引用设置到对象的实例。"}