(转)匿名方法
匿名方法
匿名方法(anonymous method)允许一个与委托关联的代码被内联地写入使用委托的地方,这使得代码对于委托的实例很直接。除了这种便利之外,匿名方法还共享了对本地语句包含的函数成员的访问。本节将对匿名方法及其使用进行详细讲解。
5.11.1 什么是匿名方法
2.0之前的C#版本中,声明委托的惟一方法是使用命名方法。C#2.0引入了匿名方法,如果使用匿名方法,则不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。简言之以前是委托调用一个方法,现在是直接将方法的代码块作为参数传给委托而不必调用方法。
//定义一个委托
delegate void Del(int y);
//委托调用匿名方法
Del d = delegate(int h) { /* 直接写委托所调用的方法的代码*/ };
5.11.2 匿名方法的使用

下面通过实例来介绍如何在程序中使用匿名方法。
程序开发步骤如下。
(1)启动Visual Studio 2005,新建一个控制台应用程序,命名为Ex05_10。
(2)在自动生成的Program.cs文件中编写如下代码:
//定义一个委托,用来调用匿名方法
delegate void Writer(string s);
class Program
{
//委托所调用的命名方法:
static void NamedMethod(string k)
{
System.Console.WriteLine(k);
}
static void Main(string[] args)
{
// 委托类调用匿名方法:
Writer w = delegate(string j)
{
System.Console.WriteLine(j);
};
// 调用匿名方法并显示匿名方法被调用:
w("匿名方法被调用。");
Console.WriteLine();
// 委托关联命名方法 " NamedMethod ":,注意在这里多了实例化委托
w = new Writer(NamedMethod);
// 显示命名方法被调用
w("命名方法被调用。");
}
}
实例运行结果如图5.9所示。

图5.9 匿名方法的使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?