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

Rob*_*own 6 c# vb.net lambda

我是一名VB.NET程序员,也知道一些C#.我最近遇到过lambda表达式,在VB中看起来像这样:

a = Function() b + c
Run Code Online (Sandbox Code Playgroud)

但是在C#中它们看起来像这样:

a => b + c;
Run Code Online (Sandbox Code Playgroud)

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

问题在于,在阅读C#代码时,我会在心理上将运算符解析为英语单词.因此a = b + c;变成"添加b和c并分配给".然而,我在内置解析器中没有用于=>运算符的精神翻译,因此a => b + c;变成"等于指向b和c的指针",这是没有意义的,或者"a是b和c的lambda",这是可怕的.

我确信语言创建者意味着该运营商能够代表一个概念,并且该概念应该能够简化为一个单词或非常短的短语.

那么=>运营商的英文翻译是什么?

ps请注意,我试图使示例尽可能简单,以免陷入具体细节.

Mat*_*son 7

你的例子有点不对劲.

这个VB代码

a = Function()
  Return b + c
End Function
Run Code Online (Sandbox Code Playgroud)

在C#中看起来像这样:

Func<int> a = () => b + c;
Run Code Online (Sandbox Code Playgroud)

调用=>"返回" 的建议的问题是,这不适用于不返回任何内容的lambda:

例如:

Action a = () => Console.WriteLine("Test");
Run Code Online (Sandbox Code Playgroud)

如果你=>在那个场景中调用"返回",我认为这会有点令人困惑.

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

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


Chr*_*son 5

'a return b plus c'怎么样?