Go into the details of the c Func delegation

  • 2020-05-17 06:10:13
  • OfStack

As follows:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Anonymous_Lam
{
    delegate string ConvertMethod(string Method);
    class Lambda_Fun
    {
        static void Main()
        {
            ConvertMethod ConvertUpperstring = upperCaseString;
            Console.WriteLine("Using delegate instance to call upperString method");
            Console.WriteLine(ConvertUpperstring("guohu"));
            Console.WriteLine("--------------------");
            Console.WriteLine("Using anonymous delegate");
            ConvertMethod ConvertAsynCaseString = delegate(string s)
            {
                return s.ToUpper();
            };
            Console.WriteLine(ConvertAsynCaseString("leihu"));
            Console.WriteLine("--------------------");
            Console.WriteLine("Using Func<int T,Out TResult>");
            Func<string, string> FuncCaseUpper = upperCaseString;
            Console.WriteLine(FuncCaseUpper("junwenLi"));
            Console.WriteLine("--------------------");
            Console.WriteLine("Using anonymous Func<int T,Out TResult>");
            Func<string, string> FuncAnonyCaseUpper = delegate(string Name)
            {
                return Name.ToUpper();
            };
            Console.WriteLine(FuncAnonyCaseUpper("jinhaoLiu"));
            Console.WriteLine("--------------------");
            Console.WriteLine("Using lambda Expression");
            Func<string, string> FuncLambda = Name => Name.ToUpper();
            Console.WriteLine(FuncLambda("chengfan"));
        }
        static string upperCaseString(string strName)
        {
            return strName.ToUpper();
        }
    }
}

Related articles: