人生低谷来撸C#--018 匿名方法

1、概念

在 C# 中,匿名方法(anonymous methods)和 Lambda 表达式(lambda expressions)是两种非常有用的功能,它们允许你在不定义命名方法的情况下编写简短的、内联的代码块。

匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。

2、示例

2.1、匿名方法(Anonymous Methods)

匿名方法是在 C# 2.0 中引入的,主要用于提供事件处理程序或传递给某些需要 Delegate 类型参数的方法。它们没有名字,只能通过委托类型来引用。

cs 复制代码
using System;

class Program
{
    static void Main()
    {
        // 定义一个事件
        Action someAction = delegate()
        {
            Console.WriteLine("Hello, anonymous method!");
        };

        // 调用匿名方法
        someAction();
    }
}

定义了一个 Action 委托类型的变量 someAction,并赋值为一个匿名方法。这个匿名方法没有任何参数,并且在执行时会输出 "Hello, anonymous method!"

2.2、Lambda 表达式(Lambda Expressions)

Lambda 表达式是在 C# 3.0 中引入的,它们是匿名方法的简化形式,语法更简洁,可读性更强。Lambda 表达式也可以用来创建匿名函数,并且可以捕获周围的变量。

cs 复制代码
using System;

class Program
{
    static void Main()
    {
        // 定义一个 Lambda 表达式
        Action<string> printMessage = (message) => Console.WriteLine(message);

        // 调用 Lambda 表达式
        printMessage("Hello, Lambda expression!");
    }
}
  • 在这个例子中,我们定义了一个 Action<string> 委托类型的变量 printMessage,并赋值为一个 Lambda 表达式。这个 Lambda 表达式接受一个字符串参数 message,并在执行时输出该字符串。

    2.3、匿名方法 vs. Lambda 表达式

    虽然 Lambda 表达式和匿名方法在功能上有很多重叠的地方,但 Lambda 表达式的语法更简洁,更易于理解和使用。因此,在现代 C# 编程中,Lambda 表达式更为常见。

    总结一下:

    • 匿名方法 :在 C# 2.0 中引入,使用 delegate 关键字定义,语法相对复杂。
    • Lambda 表达式 :在 C# 3.0 中引入,使用 => 运算符定义,语法简洁,易于理解。

3、所想

在C#中,以后的新版本怎么定义,就没有去细纠.看了下微软的官网信息,最新的应该时C#13

附上微软的网址

C# 文档 - 入门、教程、参考。|Microsoft 学习

感兴趣的可以去看下,了解最新动态

小白暂时都用不上,哦,我就是小白。

相关推荐
张张123y2 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶5 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
FRing035 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊5 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
波力海苔夹心脆6756 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩6 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
AI导出鸭PC端8 小时前
Perplexity批量导出没有PDF模式?AI导出鸭插件补上最后一块拼图
人工智能·pdf·c#·ai导出鸭
Hhy_11079 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
starzy19909 小时前
深入理解Scala函数定义:从方法到函数的类型跨越
开发语言·scala
starzy19909 小时前
深入理解Scala递归函数:从栈溢出到尾调用优化
开发语言·scala