using System;
/// <summary>
/// Func<int> 必须有一个返回值类型,当前为无参数,返回值类型是int的方法
/// Func<string,int> 这种情况,string是方法的参数,int是方法的返回值
/// 方法的返回值在<>的最后一个,除了最后一个类型,都是方法的参数
/// 参数个数在0-16个之间,返回值类型必须是1个
/// </summary>
namespace Func委托类型和匿名方法
{
class MainClass
{
//----------------------------------------------------------
private static string GetName ()
{
return "Sea";
}
//----------------------------------------------------------
private static int GetInfo (string name)
{
Console.WriteLine ("名字是{0}", name);
return 18;
}
//----------------------------------------------------------
public static void Main (string[] args)
{
//-------------------------------------------------------
// 委托一个返回值是string类型的方法
Func<string> name = GetName;
Console.WriteLine (name ());
// 输出结果:Sea
//-------------------------------------------------------
// <>中至少有一个类型,也可以有多个类型
// 当只有一个类型的时候,该类型就是方法的返回值类型
// 当有多个类型的时候,最有一个为返回值类型,前面的为方法的参数类型
// 如下行的委托就是一个返回值是int类型,参数是string类型
Func<string,int> info = GetInfo;
info ("海洋");
//-----------------------匿名方法-------------------------
// 从上面的代码其实我们可以看得出来,每一个委托的定义都必须通过一个能匹配的方法来完成
// 然而有时候,用来初始化委托用的方法并不一定就是我们想用的,也许仅仅是为了初始化委托
// 注意委托里的参数名会使用Main函数里的变量名字
Func<string,int> info2 = delegate (string name2)
{
return 18;
};
}
}
}
【C#】Func委托类型和匿名方法
最新推荐文章于 2024-10-25 08:33:29 发布