为什么 MSDN 站点上的这个 lambda 示例不起作用?
我需要对以下 lambda 示例执行什么操作才能使其正常工作?
错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句
http://msdn.microsoft.com/en-us/library/bb397687.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
namespace TestLambda
{
class Program
{
static void Main(string[] args)
{
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}
}
}
What do I have to do to the following lambda example to get it to work?
ERROR: Only assignment, call, increment, decrement, and new object expressions can be used as a statement
http://msdn.microsoft.com/en-us/library/bb397687.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
namespace TestLambda
{
class Program
{
static void Main(string[] args)
{
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要在方法外部声明委托:
You need to declare the delegate outside of the method:
在 C# 中将类型定义为方法体语句是不合法的。 您需要将委托移到方法之外才能使其编译。 例如
It's not legal to define a type as a method body statement in C#. You'll need to move the delegate outside the method in order to get that to compile. For example