zoukankan      html  css  js  c++  java
  • 委托(delegate)

        委托的是含义,如果你学过C那么你可以把委托理解为C里面的函数指针,如果你没学过其他的语言,你可以理解为自定义类型.
        声明委托要使用关键字delegate,代码如下
    delegate void ShowName()
    学过C的:上面相当于声明了一个类型为ShowName的指针,由于C里面的指针指向的是内存中的一个实际地址,具有一定的不安全型,C#在这里做了相应的改进,必须指向具有相同签名的函数.
    直接开始C#学习读者:上面就相当于定义了一个Showname类型的自定义类型,跟系统定义的int,double类型差不多.

        类型定义完了接着就是声明这种类型的变量了,和声明int,double等类型的变量差不多.
    ShowName sn1;
    ShowName sn2;

        接下来就是给变量赋值,这里的赋值就把和定义时相同签名的函数(或者叫方法)传给上面定义的变量.赋值一共有三种语法格式.
    //第一种
    sn1 = new ShowName(MyName);
    //第二种
    sn1 = MyName;
    //第三种
    sn1 = delegate(){//}

        下面我给出一个完整的代码
    using System;
    using System.Collections;

    //定义委托类型
    delegate void ShowInfo();
    class  Info
    {
        
    public void MyName()
        
    {
            Console.Write(
    "Name:林.Net  ");
        }

        
    public void MyAge()
        
    {
            Console.Write(
    "Age:28");
        }

    }


    public class Client
    {
      
    public static void Main( string[] args )
      
    {
            Info info 
    = new Info();
            ShowInfo si ;
    //声明委托变量
            si = info.MyName;
            si 
    += info.MyAge;
            si();
      }

    }
     
  • 相关阅读:
    Android下加载GIF图片
    拍照、相册及裁剪的终极实现(一)——拍照及裁剪功能实现
    阿里巴巴矢量库
    ActiveAndroid 管理数据库
    利用box-shadow制作loading图
    适用于移动端的地址选择器
    常用的不易记忆的css自定义代码
    关于js中一个对象当做参数传递是按值传递还是按引用传递的个人看法
    JavaScript之函数柯里化
    CSS3实现图片渐入效果
  • 原文地址:https://www.cnblogs.com/answercard/p/1383543.html
Copyright © 2011-2022 走看看