c# Action、Func

/*******
 * Action、Func是简化的委托,不同的是Action没有返回值,Func是有返回值
 *******/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{

    public class TestClass
    {
        public static void test1(string str)
        {
            Console.WriteLine("test1方法:" + str);
        }

        public static string test2(string str)
        {
            return "test2方法:" + str;
        }

        public static void test()
        {
            TestDelegate.test();
            TestAction.test();
            TestFunc.test();
        }
    }

    public class TestDelegate
    {
        private delegate string testDele(string str1);
        public static void test()
        {
            Console.WriteLine("测试委托开始");
            testDele del = new testDele(TestClass.test2);
            string str = del("tom");
            Console.WriteLine(str);
            Console.WriteLine("测试委托结束");
        }

    }

  public  class TestAction
    {
      public static void test()
      {
          Console.WriteLine("测试Action开始");
          Action<string> action = TestClass.test1;
          action("joyet");
          Console.WriteLine("测试Action结束");
      }
    }

  public class TestFunc
  {
      public static void test()
      {
          Console.WriteLine("测试Func结束");
          Func<string, string> fun = TestClass.test2;
          string str = fun("tom");
          Console.WriteLine(str);
          Console.WriteLine("测试Func结束");
      }

  }
}
原文地址:https://www.cnblogs.com/joyet-john/p/7428018.html