加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
101-匿名方法.cs 1.41 KB
一键复制 编辑 原始数据 按行查看 历史
using System;
// 4.4 匿名方法
// 匿名方法时C#2.0引入的特性,并通过C#3.0的lambda表达式得到大大扩展。
// 匿名方法类似于lambda表达式,但没有下面的特性:
// 确定类型的参数
// 表达式语法(匿名方法必须时语句块)
// 在指定到Expression<T>时,编译成表达式树的功能
// 写匿名方法的方法时:delegate关键字后面跟参数声明(可选),然后时方法体。
//以下面的委托为例:
//delegate int Transformer(int i);
//如下是实现和调用匿名方法:
//Transformer sqr = delegate (int x) { return x * x; };
//Console.WriteLine(sqr(3)); // 9
//第一行代码语义等同于下面的lambda表达式:
//Transformer sqr = (int x) => { return x * x; };
//或简写为:
//Transformer sqr = x => x*x;
//提示:完全省略参数声明是匿名方法独有的特性——即使委托需要这些参数声明。在声明带默认空句柄的事件时很有用,例如:
//public event EventHandler Clicked = delegate{};
//这样,在引发事件时就避免了检查是否为null。下面的写法也是合法的:
//Clicked += delegate{ Console.WriteLine("clicked"); }; // 无参数
//匿名方法和lambda表达式使用同样的方法捕获外部变量。
namespace _101_匿名方法
{
class Program
{
static void Main(string[] args)
{
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化