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();
      }

    }
     
  • 相关阅读:
    转移到新的个人独立博客。
    hdu5618 (三维偏序,cdq分治)
    平衡树维护动态凸包
    poj1986 LCA
    hdu2586 LCA
    LCA最近公共祖先 ST+RMQ在线算法
    hdu 3401 单调队列优化DP
    【转】单调队列优化DP
    CodeForces 548D 单调栈
    hdu3530 单调队列
  • 原文地址:https://www.cnblogs.com/answercard/p/1383543.html
Copyright © 2011-2022 走看看