欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#委托

程序员文章站 2023-10-16 12:10:50
C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。 委托多 ......

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

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

 

委托多播实例:例如小明叫小张买完车票,之后接着又让他带张电影票:

// 小张类
public class mrzhang
    {
    // 其实买车票的悲情人物是小张
    public static void buyticket()
    {
            console.writeline("nnd,每次都让我去买票,鸡人呀!");
    }

    public static void buymovieticket()
    {
        console.writeline("我去,自己泡妞,还要让我带电影票!");
    }
}

//小明类
class mrming
{
    // 声明一个委托,其实就是个“命令”
    public delegate void bugticketeventhandler();

    public static void main(string[] args)
    {
        // 这里就是具体阐述这个命令是干什么的,本例是mrzhang.buyticket“小张买车票”
        bugticketeventhandler mydelegate = new bugticketeventhandler(mrzhang.buyticket);

        mydelegate += mrzhang.buymovieticket;
        // 这时候委托被附上了具体的方法
        mydelegate();
        console.readkey();
    }
}