前面我们有讲过 C# 中的函数,今天我们补充一点。
在 C# 中,支持一种函数叫做 “匿名函数”,即将一个 “内联” 语句或表达式,可在需要委托类型的任何地方使用。
我们可以使用 lambda 表达式或匿名方法来创建匿名函数。 微软官方建议使用 lambda 表达式,因为它们提供了更简洁和富有表现力的方式来编写内联代码。所以,我们这里也就使用了 lambda 表达式。
下面我们来看一个简单的示例:
using System;
namespace ConsoleApp27
{
class Program
{
static void Main(string[] args)
{
Action say = () => Console.WriteLine("Hello World.");
say();
}
}
}
运行结果:
Hello World.
既然是作为函数,肯定要可以通过传参的方式:
using System;
namespace ConsoleApp27
{
class Program
{
static void Main(string[] args)
{
Action<string> say = (s) => Console.WriteLine(s);
say("Hello World.");
}
}
}
运行结果:
Hello World.
大家还记得我们前面的函数示例,创建一个函数,计算任意两个数的和,今天我们将尝试使用 lambda 表达式 的方式重写它。
下面我们来看看具体代码:
using System;
namespace ConsoleApp27
{
class Program
{
static void Main(string[] args)
{
Func<int, int, int> sum = (x, y) =>
{
return x + y;
};
Console.WriteLine("Please enter first number:");
int firstNum = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter second number:");
int SecondNum = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(sum(firstNum, SecondNum));
}
}
}
运行结果:
Please enter first number:
5
Please enter second number:
5
10
<<: Day13 Vue directives(v-if & v-show)
>>: Day.18 「从函式物件认识 作用域 与 提升!」 —— JavaScript 函式(Function) & 作用域(Scope) & 提升(Hoisting)
在前面的一些示例中,我们见过 $,@ 等等,这样的符号,但没有详细地说明这些符号的用途,今天我们就来...
今天来试试看利用Canvas来做声音的视觉表现! 搭配Javascript web audio AP...
回到地图 我们在前几天讨论到地图,但是我们不用 Google API,因为怕被收钱钱,我们用的是 O...
自签凭证绑定 Docker版 当有需求要Mattermost绑定自签凭证时怎麽办?我们的Matter...
344. Reverse String 今天这一题是将一个字元阵列翻转过来,题目看似很单纯,但也有一...