C#学习笔记:委托概念示例

参考书目:C#6.0学习笔记——从第一行C#代码到第一个项目设计(作者周家安)P92

学习目的:掌握委托的概念

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

namespace Example3_12
{
    class Program
    {
        static void Main(string[] args)
        {
            //定义三个委托变量
            MyDelegate d1, d2, d3;
            //d1关联TestMethod1方法
            d1 = TestMethod1;       //委托类似于C语言中的函数指针
                                    //d1关联TestMethod1方法
            d2 = TestMethod2;       //d2关联TestMethod2方法
                                    
            d3 = TestMethod3;       //d3关联TestMethod3方法

            //分别调用三个委托
            Console.WriteLine("分别调用三个委托实例,输出结果如下:");
            d1("d1");
            d2("d2");
            d3("d3");

            //定义委托4,先与TestMethod1方法关联
            MyDelegate d4 = TestMethod1;
            //随后与TestMethod2,TestMethod3方法关联
            d4 += TestMethod2;
            d4 += TestMethod3;
            //调用d4
            Console.WriteLine("\n调用d4可以同时调用三个方法,输出结果如下:");
            d4("d4");


            Console.ReadKey();
        }


        #region 方法定义,定义3个静态方法
        //
        static void TestMethod1(string str)
        {
            Console.WriteLine("这是方法一。参数:{0}", str);
        }
        static void TestMethod2(string str)
        {
            Console.WriteLine("这是方法二。参数:{0}", str);
        }
        static void TestMethod3(string str)
        {
            Console.WriteLine("这是方法三。参数:{0}", str);
        }

        #endregion

        #region 定义委托
        public delegate void MyDelegate(string s);

        #endregion


    }
}

运行结果如下:

总结:C#的委托可以实现c语言中函数指针的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值