C#中语句lambad为什么不能是类成员
这里为什么public static int Add2(int a, int b) => { return a + b; }//语句lambda
直接一片红。使用表达式Lambda却没有问题
using System;
namespace 匿名函数与委托
{
class Program
{
public delegate string Del(string str);
public static int Add(int a, int b) => a + b;//表达式lambda
//public static int Add2(int a, int b) => { return a + b; }//语句lambda
static void Main(string[] args)
{
Console.WriteLine("{0}", Add(1,2));
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为你这并不是 lambda 呀。
仔细看:
和
明明有了
{}
,却多了=>
,这样编译器也搞不懂,你是在定义普通方法,还是想用 lambda,你把它搞晕了。实际上,真的是你写错了,并非编译器傻了。如果你非要写带
{}
的 lambda,请这样写:Add2 此时是个委托类型,将其赋值为指定匿名方法。使用的时候,就像是使用普通方法一样。
这是C#6的一个语法糖,不支持代码块可能是因为CLR不能推断了吧