函数(7-7)匿名方法-C#编程零基础到入门学习

函数(7-7)匿名方法-C#编程零基础到入门学习

首页音乐舞蹈7的代码更新时间:2024-07-28
匿名方法

顾名思义,匿名方法是没有名称的方法。可以使用委托(delegate)关键字定义C#中的匿名方法,可以使用lambda表达式来定义,并且可以将其分配给委托(delegate)类型的变量。

在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。

语法格式

(parameter list) => { statement(s) }

参数列表是方法所需的参数,可以是零个或多个。如果不需要参数,则使用空括号()。语句(s)是要在方法中执行的代码。

匿名方法使用

定义一个匿名方法,使用它接受两个参数并返回它们的和:

Func<int, int, int> add = (x, y) => x y;

Func<int, int, int>是一个具有两个整型参数和一个整型返回值的函数类型。 (x, y) => x y 是一个匿名方法,它接受两个整型参数x和y,并返回它们的和。

完整示例代码:

using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NoNameFunc { internal class Program { static void Main(string[] args) { Func<int, int, int> add = (x, y) => x y; int result = add(1, 2); // 在这里,1和2是函数的输入参数,result是输出结果 Console.WriteLine(result); // 这将打印出3 } } }

运行结果

将它们作为参数传递给其他方法或存储在变量中。例如,下面的代码演示了如何将匿名方法作为参数传递给另一个方法:

完整示例代码:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NoNameFunc2 { internal class Program { static void Main(string[] args) { List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; // Iterate over the numbers and print each one to the console foreach (int number in numbers) { Console.WriteLine(number); } // Sort the numbers in descending order using a lambda expression numbers.Sort((x, y) => y - x); // Iterate over the numbers and print each one to the console foreach (int number in numbers) { Console.WriteLine(number); } } } }

运行结果

上面使用了一个lambda表达式(x, y) => y - x来定义一个匿名方法,它比较两个数字并返回它们之间的差值。我们将这个匿名方法作为参数传递给Sort方法,以便按降序对数字列表进行排序。

匿名方法在需要简短、临时的方法时非常有用。它们可以使代码更加简洁、易于阅读和维护。它们通常用于LINQ查询和事件处理程序中。

特点:
  1. 匿名方法没有名称,因此可以在代码中重复使用。
  2. 它们是表达式,因此可以作为参数传递给其他方法或存储在变量中。
  3. 它们使代码更简洁、易于阅读和维护。
  4. 由于匿名方法是即时编译的,因此比常规方法更高效。
查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved