码迷,mamicode.com
首页 > Windows程序 > 详细

C# 委托

时间:2017-11-13 20:00:45      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:表达   lamda   eric   参数传递   images   ogr   []   直接   将不   

1. 为什么使用委托

技术分享

由于三个方法中,只有一句代码不同。可以考虑将三个方法简化为一个,并将不同的部分作为参数传入上述方法中。将一个方法作为参数传递给另一个方法,传递方法的类型,定义位委托类型。

2. 委托概念

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

namespace 委托概念
{
    class Program
    {
        //将一个方法作为另一个方法的参数时,前面的方法可使用委托
        //委托的定义应与其所对应的函数的标签一致
        //函数标签,指函数的返回值和参数
        public delegate void Dele(string name);

        static void Main(string[] args)
        {
            //1.1 初始化委托,并直接调用
            //Dele dele = new Dele(SayHiChinese);
            //dele("喵");

            //1.2 初始化委托
            //Dele dele = SayHiChinese;
            //dele("喵");

            //1.3 使用匿名函数初始化委托
            //Dele dele = delegate(string name)
            //{
            //    Console.WriteLine("匿名 " + name);
            //};
            //dele("喵");
            
            //2. 委托作为另一个方法的参数
            //Test("cat", SayHiChinese);

            //3. 用匿名函数初始化委托
            //可避免声明多个函数,用于当函数只使用一次时
            //Test("dog", delegate(string  name)
            //{
            //    Console.WriteLine("Anonymouse " + name);
            //    Console.ReadKey();
            //});

            //4. lamda表达式( => goes to)和委托
            Dele dele = (string name) => { Console.WriteLine("lamda表达式" + name); };
            dele("cat");
        }       

        public static void Test(string name, Dele dele)
        {
            dele(name);

        }

        public static void SayHiChinese(string name)
        {
            Console.WriteLine("你好吗? " + name);
            Console.ReadKey();
        }

        public static void SayHiEnglish(string name)
        {
            Console.WriteLine("How are you?" + name);
            Console.ReadKey();
        }
    }
}

 

C# 委托

标签:表达   lamda   eric   参数传递   images   ogr   []   直接   将不   

原文地址:http://www.cnblogs.com/my-cat/p/7827485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!