C# 匿名函数

匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。  可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。

C# 中委托的发展
 C# 1.0 中,您通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。  
 C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。 
 C# 3.0 引入了 Lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。  这两个功能统称为“匿名函数”。  通常,针对 .NET Framework 版本 3.5 及更高版本的应用程序应使用 Lambda 表达式。
 
下面的示例演示了从 C# 1.0 到 C# 3.0 委托创建过程的发展:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Test
{
    delegate void TestDelegate(string s);
    static void M(string s)
    {
        Console.WriteLine(s);
    }
 
    static void Main(string[] args)
    {
        //形式1
        TestDelegate testDelA = new TestDelegate(M);
      //形式2
        TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };
        //形式3
        TestDelegate testDelC = (x) => { Console.WriteLine(x); };
 
        testDelA("Hello. My name is M and I write lines.");
        testDelB("That's nothing. I'm anonymous and ");
        testDelC("I'm a famous author.");
 
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}

  

 

posted @   木狼  阅读(3302)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示