zoukankan      html  css  js  c++  java
  • C#委托与事件

    委托

     定义委托的语法和定义方法比较相似,只是比方法多了一个关键字delegate , 我们都知道方法就是将类型参数化,所谓的类型参数化就是说该方法接受一个参数,而该参数是某种类型的参数,比如int、string等等;而委托是将方 法参数化,说了上面的那个类型参数化之后,相信你也能猜到方法参数化的意思了,对,就是将方法作为一个参数传到一个委托中。

    首先来看看声明委托的语句:

    public deletate void MyDelegate();  

    public:访问修饰符  delegate:关键字  void:返回类型  MyDelegate:委托名称  ( ):参数列表  

    看 到声明大家会想了,为什么该委托的返回值,参数列表要这样的,我不能返回一个 string,一个int么?我不能给委托加几个参数么? 答案是:当然可以,但委托的定义是相对于方法来说的,因为得你的委托最终是要来注册方法的,而你的方法是具有某种签名的,所以你要给怎样签名的方法来声明 一个委托,该委托就要和该方法具有同等的签名,就类似于你用一个int 类型的变量去接受一个string类型的值,显然是不行的(个人理解).... 

     * 委托只要定义就可以了,我们并不需要关心他的实现 

    委托的使用

    注册委托有两种方法:

    第一种:直接将方法赋值[=]或者用“+=” 给一个委托==>委托名 =[+=]  方法名 

    第二种:委托本质也是一个类,只是一个特殊的类,所以我们也可以实例化一个委托对象通过委托构造函数来注册委托==》委托名 对象名= new 委托名(方法名)

  • 相关阅读:
    VMWare ESX Server
    ubuntu 13.04 xrdp 远程桌面连接问题[转载]
    wget 使用技巧
    C# 跨线程调用问题
    ASP.NET WEB API 返回JSON 出现2个双引号问题
    ASP.NET MVC 4 中Razor 视图中JS无法调试
    Android 如何修改gen下包的名字
    打开AVD时报”Data partition already in use. Changes will not persist!”
    Android 将APK文件安装到AVD中并分析其界面结构
    Android 实现界面(Activity)的跳转
  • 原文地址:https://www.cnblogs.com/fanna/p/4792199.html
Copyright © 2011-2022 走看看