C#匿名方法是什么(小白必读)
为了简化委托的操作,在 C# 中提出了匿名方法的概念。它在一定程度上减少了代码量,并简化了委托引用方法的过程。
匿名方法允许一个与委托关联的代码被内联地写入使用委托的位置,匿名方法是通过使用 delegate 关键字创建委托实例来声明的,其语法格式如下:
下面是使用匿名方法的一个例子:
再举个例子:
程序运行结果如下:
匿名方法允许一个与委托关联的代码被内联地写入使用委托的位置,匿名方法是通过使用 delegate 关键字创建委托实例来声明的,其语法格式如下:
delegate([参数列表])
{
//代码块
}
下面是使用匿名方法的一个例子:
using System;
class Program
{
static void Main()
{
// 定义一个委托类型
Action<string> printAction = delegate(string message)
{
Console.WriteLine(message);
};
// 使用匿名方法
printAction("Hello, World!");
}
}
在这个例子中,Action<string> 是一个委托类型,它接受一个 string 类型的参数并且没有返回值。printAction 被初始化为一个匿名方法,该方法接收一个字符串参数并打印它。再举个例子:
delegate void DelOutput(string s);//自定义委托
class Program
{
static void NamedMethod(string k)//与委托匹配的命名方法
{
Console.WriteLine(k);
}
static void Main(string[] args)
{
//委托的引用指向匿名方法delegate(string j){}
DelOutput del = delegate (string j)
{
Console.WriteLine(j);
};
del.Invoke("匿名方法被调用");//委托对象del调用匿名方法
//del("匿名方法被调用");//委托也可使用这种方式调用匿名方法
Console.Write("\n");
del = NamedMethod;//委托绑定到命名方法NamedMethod
del("命名方法被调用");//委托对象del调用命名方法
Console.ReadLine();
}
}
首先定义一个无返回值且参数为字符串的委托类型 DelOutput;然后在控制台应用程序的默认类 Program 中定义一个静态方法 NamedMethod,使该方法与委托类型 DelOutput 相匹配;在 Main 方法中定义一个匿名方法 delegate(string j){},并创建委托类型 DelOutput 的对象 del;最后通过委托对象 del 分别调用匿名方法和命名方法 NamedMethod。程序运行结果如下:
匿名方法被调用
命名方法被调用
ICP备案:
公安联网备案: