深入c# Func委托的详解
作者:
本篇文章是对c#中的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();
}
}
}
复制代码 代码如下:
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();
}
}
}