关闭

关于委托

标签: 编译器stringc#
1127人阅读 评论(4) 收藏 举报
分类:
    在C#中使用一个类时,有两个部分。首先需要定义这个类,即告诉编译器这个类由什么字段和方法组成。然后(除非使用的是静态方法)实例化类,即创建类的一个对象。当我们想要使用委托时,也需要经过这两个步骤。对于委托,定义它就是告诉编译器这种类型代表了哪种类型的方法,然后创建该委托的一个或多个实例。
    定义委托的方法如下:
    delegate void VoidOperation(uint X);
    在这个例子中,定义了一个委托VoidOperation,并指定该委托的每个实例都包含一个方法的细节。该方法带有一个unit的参数,并返回void。理解委托的一个要点是它们的类型安全性非查高。在定义委托时,必须给出它所代表的方法的全部细节。
    提示:
    理解委托的一种好方式是把委托当作给方法的特征指定一个名称。
    假定,要定义一个委托TwoLongsOp,该委托代表的函数有两个long参数,返回一个double,可以编写如下的代码:
    delegate double TwoLongsOp(long L1,long L2);
    或者定义一个委托,它代表一个不带参数的方法,返回一个string,则可以编写如下代码:
    delegate string GetAString();
    其语法类似于方法的定义,但没有方法体,定义的前面要加上关键字delegate。因为定义委托基本上是定义一个新类,所以可以在定义类的任何地方定义委托,既可以在另一个类的内部定义,也可以在任何类的外部定义,还可以在命名空间中把委托定义为顶层对象。根据定义的可见性,可以在委托定义上添加一般的访问修饰符:public、private和protected等。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18249次
    • 积分:363
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:2篇
    • 译文:0篇
    • 评论:25条
    文章分类
    最新评论