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语言中函数指针的功能。

发布了42 篇原创文章 · 获赞 1 · 访问量 982

猜你喜欢

转载自blog.csdn.net/qq_41708281/article/details/104237574