c# 中委托的多种写法

  • 一、按照标准的事件委托格式编写

public delegate void MyDelegateHandler(string name);

        public static event MyDelegateHandler myDelegate;

        public static void OnMyDelegate(string name)

        {

            if (myDelegate != null)

            {

                myDelegate(name);

            }

        }

      

        public static void HellowChinese(string name)

        {

            Console.WriteLine("hello  " + name);

            Console.ReadKey();

        }

        

        public static void Main(string[] args)

        {

            myDelegate += HellowChinese;

            OnMyDelegate("wang");

        }

 

 

  • 二、不使用事件的委托形式编写

public delegate void MyDelegateHandler(string name);

        public static void HellowChinese(string name)

        {

            Console.WriteLine("hello  " + name);

            Console.ReadKey();

        }

        

        public static void Main(string[] args)

        {

            MyDelegateHandler myDelegate = new MyDelegateHandler(HellowChinese);

            myDelegate("wang");

        }

 

 

  • 三、匿名委托(优点是不用写函数)

public delegate void MyDelegateHandler(string name);

        public static event MyDelegateHandler myDelegate;

 

        public static void Main(string[] args)

        {

           myDelegate += delegate(string name)

           {

                Console.WriteLine("hello  " + name);

                Console.ReadKey();

           };

 

           myDelegate("wang");

        }

 

  • 四、lamada表达式(匿名委托的另外一种写法.)

public delegate void MyDelegateHandler(string name);

        public static event MyDelegateHandler myDelegate;

 

        public static void Main(string[] args)

        {

            myDelegate += ((name) =>

            {

                Console.WriteLine("hello  " + name);

                Console.ReadKey();

            });

 

           myDelegate("wang");

        }

你可能感兴趣的:(c# 中委托的多种写法)