首页 > 代码库 > C#对委托的初步理解理解

C#对委托的初步理解理解

作为新手对委托的学习:

1.定义委托:委托实际上是一个类,在定义委托前就知道了方法的返回类型和方法的参数类型(可以把委托理解为只知道方法的返回类型和方法的参数类型,不知道方法体)

public  delegate string TestDelegate(string test);

2.实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Demo

{

    public delegate string TestDelegate(string name);//定义委托,委托实际上是一个类

 

    //新建一个类来测试委托调用方法

    public class Test

    {

        public void GreetPeople(string name, TestDelegate delegate1)

        {

            //if (delegate1 != null)//如果有方法注册委托变量

            //{

            //    delegate1(name);//通过委托调用方法

            //}

            delegate1?.Invoke(name);//(与上面的if等价)

        }

    }

    class Program

    {

        private static string TestMethod(string name)

        {

            Console.WriteLine("你好," + name);

            return null;

        }

 

        static void Main(string[] args)

        {

            Test gm = new Test();

 

            //使用委托调用TestMethod方法

            gm.GreetPeople("panter", TestMethod);

            Console.WriteLine();

 

            //使用委托调用lambda

            Console.Write("使用了lambda:");

            gm.GreetPeople("潘特", lambdatest =>

            {

                Console.WriteLine("你好,"+lambdatest);

                return null;

            });

            Console.ReadKey();

        }

    }

}

结果:

技术分享

 

C#对委托的初步理解理解