匿名方法从字面意思理解就是没有名字的方法。 在我们实际开发工作中,可能会有一些不常用且代码量小的方法存在,那么我们就可以把他写成匿名方法的形式,这样可以减少方法的繁琐和一些不必要的调用麻烦。 匿名语法格式: 委托类型变量 = delegate([类型列表]) { 方法体; }; 1,新建一个C#控制台项目,未使用匿名方法的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace anonymousMethods
{
class Program
{
public delegate void noParameterDelegate(); //无参委托
public delegate void parameterDelegate(string str); //有参委托
public noParameterDelegate noPad;
public parameterDelegate Pad;
static void Main(string\[\] args)
{
Program pro = new Program();
pro.noPad = Test01;
pro.Pad = Test02;
pro.noPad();
pro.Pad("武武武");
Console.ReadKey();
}
public static void Test01()
{
Console.WriteLine("我是Test01");
}
public static void Test02(string str)
{
Console.WriteLine("我是{0}",str);
}
}
}
结果如下:[ 2.将以上代码改造成匿名方法的形式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace anonymousMethods
{
class Program
{
public delegate void noParameterDelegate(); //无参委托
public delegate void parameterDelegate(string str); //有参委托
public noParameterDelegate noPad;
public parameterDelegate Pad;
static void Main(string\[\] args)
{
Program pro = new Program();
//老方法
//pro.noPad = Test01;
//pro.Pad = Test02;
//pro.noPad();
//pro.Pad("武武武");
//匿名方法
pro.noPad = delegate () { Console.WriteLine("我是Test01"); };
pro.Pad = delegate (string str) { Console.WriteLine("我是{0}", str); };
pro.noPad();
pro.Pad("武武武");
Console.ReadKey();
}
/\*
public static void Test01()
{
Console.WriteLine("我是Test01");
}
public static void Test02(string str)
{
Console.WriteLine("我是{0}",str);
}\*/
}
}
结果如下,可以看出跟上面未使用匿名方法一样:[