委托Delegate使用帮助

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 委托Delegate
{
    class Program
    {
        static void Main(string[] args)
        {
            //4,创建一个委托实例
            MyDelegate myD1 = new MyDelegate(MyClass0.M1);
            myD1("这个是使用了");//MyClass0.M1

            //5,创建一个委托实例
            MyDelegate myD2 = new MyDelegate(MyClass0.M2);
            myD2("这个是使用了");//MyClass0.M1

            //6,继续创建实例
            MyDelegate myD3 = new MyDelegate(MyClass1.P1);
            myD3("这个是使用了");//MyClass1.P1

            //7,继续创建实例
            MyDelegate myD4 = new MyDelegate(MyClass2.P1);
            myD4("这个是使用了");//MyClass2.p1

            Console.ReadKey();           
        }
    }
    //1,创建委托
    public delegate void MyDelegate(string myStr);
    //2,创建MyClass0类
    class MyClass0
    {
        //3,3个方法
        public static void M1(string myStr) 
        {
            Console.WriteLine("MyClass0.M1{0}", myStr);
        }
        public static void M2(string myStr)
        {
            Console.WriteLine("MyClass0.M2{0}", myStr);
        }
        public static void M3(string myStr)
        {
            Console.WriteLine("MyClass0.M3{0}", myStr);
        }
    }
    //4,创建MyClass1类及1个方法
    class MyClass1
    {
        public static void  P1(string myStr)
        {
            Console.WriteLine("MyClass1.P1{0}", myStr);
        }
    }
    //5,创建MyClass2类及1个方法
    class MyClass2
    {
        public static void P1(string myStr)
        {
            Console.WriteLine("MyClass2.P1{0}", myStr);
        }
    }
}



在编程中,委托delegate)是一种类型,它允许将方法作为参数传递给其他方法或将方法存储在变量中。委托可用于实现事件、回调函数和异步编程等场景。 要使用委托,首先需要定义一个委托类型,指定方法的签名。然后,可以创建委托实例并将方法分配给委托实例。最后,可以通过调用委托实例来执行相应的方法。 以下是一个示例,展示如何使用委托: ```csharp // 定义委托类型 delegate void MyDelegate(string message); // 定义方法 static void Method1(string message) { Console.WriteLine("Method1: " + message); } static void Method2(string message) { Console.WriteLine("Method2: " + message); } static void Main() { // 创建委托实例并分配方法给它 MyDelegate myDelegate = Method1; // 调用委托实例,执行相应的方法 myDelegate("Hello, delegate!"); // 修改委托实例,更改分配的方法 myDelegate = Method2; myDelegate("Hello again, delegate!"); } ``` 输出结果: ``` Method1: Hello, delegate! Method2: Hello again, delegate! ``` 在上述示例中,我们首先定义了一个委托类型 `MyDelegate`,它接受一个字符串参数并没有返回值。然后,我们定义了两个方法 `Method1` 和 `Method2`,它们与委托类型的签名匹配。接下来,我们创建了一个委托实例 `myDelegate` 并将 `Method1` 分配给它。最后,我们通过调用委托实例来执行相应的方法。 希望这个示例能帮助你理解委托使用。如果你还有其他问题,请随时提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值