C#的委托(Delegate)类似于C\C++的函数指针。委托是存有对某一个方法引用的一种引用变量类型,引用可在运行时被改变。

委托特别用于实现事件和回调方法。所有的委托都派生自System.Delegate类。

委托的声明

委托声明决定了可由该委托引用的方法,委托可指向一个与其有相同标签的方法。

以下是一个委托的声明

public delegate string newDelegate(string str);

该声明表示此委托可以引用任何一个单字符参数的方法并且返回值为bool类型。

声明语法

delegate <return type> <delegatename> (<paramter list>)

委托实例化

委托实例化和实例化类一样,使用new关键字

newDelegate newDelegate = new newDelegate(function);

其中function为被引用的方法名,同一类作用域内只能引用静态的方法

委托的应用

定义一个委托,以及两个方法

    public delegate void delegateDemo();
public class FunStudy
{
public void stepOne()
{
Console.WriteLine("步骤一:打开冰箱门");
} public void stepTwo()
{
Console.WriteLine("步骤二:大象装冰箱里");
}
}
        static void Main(string[] args)
{
FunStudy funStudy = new FunStudy(); delegateDemo demo = funStudy.stepOne;
demo += funStudy.stepTwo;
demo();
}

执行效果

C#委托的学习了解的更多相关文章

  1. C#委托深入学习

    一基础学习: .Net delegate类型:委托跟回调函数是很有渊源的.回调其实跟通知机制有关,考虑这样一个基本的事件序列: a对象调用了b对象的某个方法,希望b对象在其方法完成之时调用a对象的某个 ...

  2. C# 委托的学习

    delegate int GetCalculatedValueDelegate(int x, int y);    //定义是个委托实际上就是抽象一类  参数列表形式和返回值相同的函数AddCalcu ...

  3. C#委托基础学习

    什么是委托       委托,顾名思义就是在你忙着做另一件事时候,你要去做另一件事,于是你可能就会委托别人帮你做,让别人把结果返回给你.编程时,委托也有这个思想. 我目前对委托的看法是,在编程中,委托 ...

  4. .Net 委托 delegate 学习

    一.什么是委托: 委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递.委托是一种特殊类型的对象,其特殊之处在于委托中包含的只是一个活多个方法的地址,而不是数据.   二.使用委托: 关键 ...

  5. C#委托与事件学习笔记

    委托事件学习笔记 本文是学习委托和事件的笔记,水平有限,如有错漏之处,还望大神不吝赐教. 什么是委托?从字面意思来解释,就是把一个动作交给别人去执行.在实际开发中最常用的就是使一个方法可以当做一个参数 ...

  6. Qt 学习之路 2(46):视图和委托

    Home / Qt 学习之路 2 / Qt 学习之路 2(46):视图和委托 Qt 学习之路 2(46):视图和委托  豆子  2013年3月11日  Qt 学习之路 2  63条评论 前面我们介绍了 ...

  7. 30天C#基础巩固------了解委托,string练习

    ---->了解委托.     生活中的例子:我要打官司,我需要找一个律师,法庭上面律师为当事人辩护,它真正执行的是当事人的陈词,这时律师 就相当于一个委托对象.当事人则委托律师为自己辩解.    ...

  8. 番外篇 之 C#委托

    对于上一节 番外篇之C#多线程的反思 反思一:   Thread th = new Thread(参数); ////参数的总结 ////首先,第一情况,对于 Thread th = new Threa ...

  9. C#事件(Event)学习日记

    event 关键字的来由,为了简化自定义方法的构建来为委托调用列表增加和删除方法. 在编译器处理 event 关键字的时候,它会自动提供注册和注销方法以及任何必要的委托类型成员变量. 这些委托成员变量 ...

随机推荐

  1. shit 钉钉

    shit 钉钉 钉钉 圈子 入口, 没有 https://www.dingtalk.com/qidian/help-detail-1000131196.html shit bug 全员圈 这个好像是要 ...

  2. svg & regex

    svg & regex https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reg ...

  3. js 增加数组的嵌套层数

    class A {} const proxy = new Proxy(new A(), { get(o, k) { if (!/\d+/.test(k.toString())) return o[k] ...

  4. net里面using的使用

    起初using就明白一个作用  那就是引用命名空间.当面试官听到我回答这个问题的时候,马上就还问我,还有什么作用?我就只能摇头了,今天在网上看了下using的作用. 1.using指令.using + ...

  5. 腾讯数据库tdsql部署与验证

    环境准备 | 主机 | IP | 配置(最低要求配置) | | :----- | ------------- | ------------------ | | node-1 | 192.168.1.8 ...

  6. 微信小程序切换标签改变样式

    微信小程序切换标签改变样式 wxml <!--顶部导航栏--> <view class="swiper-tab"> <view class=" ...

  7. Nginx配置翻译

    Windows 格式 server { listen 82; server_name localhost; root "D:/testfile/"; location / { in ...

  8. Linux常用操作命令之文件权限(二)

    一.基本概念 Linux/Unix是多用户系统:root是超级用户,拥有最高权限,其他用户及权限由root管理.文件/目录的权限有三种,可读read(r)可写write(w)可执行excute(x). ...

  9. AJAX基本操作

    XMLHttpRequest对象: XMLHttpRequest 是 AJAX 的基础.所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject) ...

  10. Elasticsearch精进之路:elasticsearch-head插件使用教程

    一.elasticsearch-head插件的作用 ealsticsearch是一个分布式.RESTful 风格的搜索和数据分析引擎,所有的数据都是后台服务存储着,类似于Mysql服务器,因此如果我们 ...