6

最近一篇文章的答案(在 C# 中模仿 times() Ruby 方法的机会吗?)在用法示例中使用=>运算符。这个运营商是做什么的?我在我的 C# 书中找不到它,而且很难在网上搜索到这样的符号。(我找不到它。)

4

4 回答 4

15

它并不是真正的运算符,它是 lambda 表达式语法的一部分。特别是 => 是将参数与 lambda 表达式的主体分开的位。

您的书是否涵盖 C# 3.0?如果不是,它将不包含 lambda 表达式。如果是这样,它真的应该覆盖它们!希望使用正确的术语,您将能够在 TOC 或索引中找到它。

编辑:更多信息:lambda 表达式是一种语法糖,用于创建委托的实例表达式树(后者是 .NET 3.5 的新内容)。Lambda 表达式几乎完全取代了匿名方法(来自 C# 2.0),尽管它们不像匿名方法那样支持“我不关心参数”的概念。

于 2008-10-07T13:50:14.453 回答
1

这将是一个 lambda 表达式:

http://msdn.microsoft.com/en-us/library/bb397687.aspx

这里有一个例子:

MyControl.OnMouseDown += (sender, e) =>
{
  // Do something in the mouse down event
};

在这里,我创建了一个 lambda 表达式事件委托。它基本上使我不必在课堂上为它创建一个单独的函数。

于 2008-10-07T13:50:19.413 回答
1

lambda 表达式是一个匿名函数,可以包含表达式和语句,并可用于创建委托或表达式树类型。

所有 lambda 表达式都使用 lambda 运算符 =>,读作“goes to”。lambda 运算符的左侧指定输入参数(如果有),右侧保存表达式或语句块

http://msdn.microsoft.com/en-us/library/bb397687.aspx

于 2008-10-07T13:51:44.077 回答
1

=> 标记称为lambda 运算符

它在 lambda 表达式中用于将左侧的输入变量与右侧的 lambda 主体分开。

MSDN

于 2008-10-08T04:48:36.417 回答