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。
程序运行结果如下:
匿名方法被调用
命名方法被调用