C#委托声明实例化与调用

发表于:2014-5-20 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:韩艳坤    来源:51Testing软件测试网采编

  系统访问数据或调用方法有两种操作方式:一种是通过名称访问或调用,另一种是通过所在的内存地址来访问调用。为了系统的安全与稳定,NET Framework的CLR库不允许程序通过指针来直接操作内存中数据或方法,而是通过托管机制来访问内存中数据或调用内存中的方法。委托就是C#提供的一种以托管机制调用方法的特殊数据类型,其作用于房屋租凭中介机构类似。
  下面我们主要围绕以下三点
  //1.定义委托
  //2.委托的实例化
  //3.委托的调用,实际上是将委托指向已经实现的某个方法
  //注意:调用的方法必须返回类型和定义的委托返回类型一致
  委托是一个类,它定义了方法的类型,使得可以将方法当做参数进行传递。
  一:委托的定义
  在C#中使用关键字delegate声明委托。声明委托的一般形式是:
  //委托的定义
  // [访问修饰符]  delegate  数据类型  委托名(参数列表....)
  在使用委托前是一定先要定义的
  例如:Delegate void d(int x)
  二:实例化( 与方法绑定)
  为了与命名方法一起使用,委托必须用具有可接受签名的方法进行实例化。
  实例化的方法可用下列方法各项之一
  “委托创建表达式”中引用的静态方法,或者
  “委托创建表达式”中引用的目标对象(此对象不能为 null)和实例方法
  另一个委托
  例如:
Delegate void d(int x)
delegate void D(int x);
class C
{
public static void M1(int i) {...}
public void M2(int i) {...}
}
class Test
{
static void Main() {
D cd1 = new D(C.M1);      // static method
Test t = new C();
D cd2 = new D(t.M2);      // instance method
D cd3 = new D(cd2);      // another delegate
}
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号