委托三------------多播委托与匿名方法

委托三------------多播委托与匿名方法

============================================多播委托

-------------------------------------主程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            //多播委托只能使用无返回值的委托
            //当str1执行失败后会阻止后面的方法的执行
            Action<string> a = str1;
            a += str2;
            a += str2;
            a += str2;
            a += str2;
            StrAndName(a, "文聘");
            Console.ReadKey();
        }

        static void str1(string name)
        {
            Console.WriteLine("看我{0}的厉害", name);
        }
        static void str2(string name)
        {
            Console.WriteLine("受死吧!{0}", name);
        }
        static void StrAndName(Action<string> action, string name)
        {
            action(name);
        }
    }
}

 

============================================匿名方法

-------------------------------------主程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "你好!";
            //不能使用break,goto,continue,ref,out
            Action<string> a = delegate(string str)
            {
                Console.WriteLine(s + str);
                Console.ReadKey();
            };
            a("我叫张飞");

        }
    }
}