c# - 如何将 lambda 表达式翻译成英文?

标签 c# vb.net lambda

<分区>

我是一名 VB.NET 程序员,也懂一些 C#。我最近遇到了 lambda 表达式 in VB can look like this :

a = Function() b + c

但是in C# they look like this :

a => b + c;

(对我来说,这看起来很像 C 中的一个奇怪的指针表达式)

问题是,在阅读 C# 代码时,我会在脑海中将运算符解析为英文单词。所以 a = b + c; 变成“添加 b 和 c 并分配给 a”。但是,我的内置解析器中还没有针对 => 运算符的心理翻译,所以 a => b + c; 要么变成“a 等于指向 b 的指针, c”毫无意义,或者“a 是 b 和 c 的 lambda”,这很糟糕。

我敢肯定,语言创造者的意思是让该运算符代表一个概念,并且该概念应该能够简化为单个词或非常短的短语。

那么 => 运算符的预期英文翻译是什么?

附注请注意,我尽量使示例尽可能简单,以免陷入细节。

最佳答案

你的例子有点错误。

这个VB代码

a = Function()
  Return b + c
End Function

在 C# 中看起来像这样:

Func<int> a = () => b + c;

调用 =>“returns”的建议的问题在于,这不适用于不返回任何内容的 lambda:

例如:

Action a = () => Console.WriteLine("Test");

如果您在那种情况下调用 =>“returns”,我认为会有点困惑。

通常,用于 => 的术语是“转到”,但有些人说“映射到”或(在用作谓词的 lambda 的情况下)“这样”。

我个人的偏好是“映射到”(正如对 OP 的第一个回复中所建议的那样!)。

关于c# - 如何将 lambda 表达式翻译成英文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216086/

相关文章:

c# - 将 lambda 分配给 Action<T>

c# - 抱歉,我的机器人代码有问题......但它没有

c# - 为什么这个简单的 .NET 控制台应用程序有这么多线程?

c# - 将字典转换为两个列表的最佳方法

c# - C# 中枚举的替代方法 - 嵌套

.net - Gridview数据显示

vb.net - 将 KB 转换为 MB?

SQL 日期时间到字符串格式

python - 使用 groupby 获取每组的最大众数

pandas - 如何将 lambda 函数应用于 PANDAS 中满足条件的行