天天看點

Func 委托

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();

        }

    }

}

繼續閱讀