C# 匿名方法的实现示例

 更新时间:2026年03月24日 09:53:17   作者:A爱了个I  
本文详细介绍了C#中的匿名方法,包括其声明方式(使用delegate和lambda表达式),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

1、C# 匿名方法的声明

可以使用 lambda 表达式或匿名方法来创建匿名函数。 建议使用 lambda 表达式,因为它们提供了更简洁和富有表现力的方式来编写内联代码。 与匿名方法不同,某些类型的 lambda 表达式可以转换为表达式树类型。匿名方法定义语法如下,

1)使用delegate 关键字创建委托实例来声明

delegate void MyDelegate(string s);
...
MyDelegate m = delegate(string x)
{
    Console.WriteLine("匿名方法: {0}", x);
};

2)使用 lambda 表达式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace cjavapy
{
    delegate void MyDelegate(string s);
    class Program
    {
        static void Main(string[] args)
        {
            //Expression<del> myET = x => x * x;
            MyDelegate m =  x=>Console.WriteLine("匿名方法: {0}", x);
            Console.ReadKey();
        }
    }
}
————————————————
版权声明:本文为CSDN博主「A爱了个I」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fl1768317420/article/details/137703812

2、匿名方法的使用

在 C# 1.0 中,通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。 C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。 C# 3.0 引入了 lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。 这两个功能统称为匿名函数。 通常,面向 .NET Framework 3.5 或更高版本的应用程序应使用 lambda 表达式。

例如,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace cjavapy
{
    class Test
    {
        delegate void MyDelegate(string s);
        static void MyMethod(string s)
        {
            Console.WriteLine(s);
        }
        static void Main(string[] args)
        {
            //原始委托语法
            //使用指定方法初始化。
            MyDelegate md1 = new MyDelegate(MyMethod);
            // c# 2.0:一个委托可以被初始化
            //内部代码,称为“匿名方法”。这
            //方法以字符串作为输入参数。
            MyDelegate md2 = delegate (string s) { Console.WriteLine(s); };
            // c# 3.0。委托可以被初始化
            //一个lambda表达式lambda也接受一个字符串
            //作为输入参数(x)。x的类型由编译器推断。
            MyDelegate md3 = (x) => { Console.WriteLine(x); };
            // 调用委托。
            md1("C#");
            md2("Java");
            md3("Python");
            Console.ReadKey();
        }
    }
}

到此这篇关于C# 匿名方法的实现示例的文章就介绍到这了,更多相关C# 匿名方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#代码实现将PDF转换为PDF线性化格式

    C#代码实现将PDF转换为PDF线性化格式

    PDF 线性化是一种对 PDF 文件进行优化的方式,本文将为大家详细介绍如何使用C#代码将普通 PDF 转换为线性化 PDF,感兴趣的小伙伴可以参考一下
    2026-04-04
  • 微信公众平台开发教程(三) 基础框架搭建

    微信公众平台开发教程(三) 基础框架搭建

    这篇文章主要介绍了微信公众平台开发教程(三) 基础框架搭建,具有一定的参考价值,有需要的可以了解一下。
    2016-12-12
  • C# WindowsForm程序同时启动多个窗口类

    C# WindowsForm程序同时启动多个窗口类

    这篇文章主要为大家详细介绍了C# WindowsForm程序同时启动多个窗口类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Unity3D实现鼠标控制视角转动

    Unity3D实现鼠标控制视角转动

    这篇文章主要为大家详细介绍了Unity3D实现鼠标控制视角转动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • C#使用System.Buffer以字节数组Byte[]操作基元类型数据

    C#使用System.Buffer以字节数组Byte[]操作基元类型数据

    这篇文章介绍了C#使用System.Buffer以字节数组Byte[]操作基元类型数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • WPF通过使用C#代码给控件赋值

    WPF通过使用C#代码给控件赋值

    开发中偶尔会用到使用c#代码给控件赋值,这里需要通过F12找到控件的赋值类型,然后在看控件可以使用那种方式赋值,花点时间研究一下,基本都可以通过c#代码给控件赋值的,需要的朋友可以参考下
    2023-09-09
  • Unity PC版Log的具体位置介绍

    Unity PC版Log的具体位置介绍

    这篇文章主要介绍了Unity PC版Log的具体位置介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C# 键盘Enter键取代Tab键实现代码

    C# 键盘Enter键取代Tab键实现代码

    这篇文章主要介绍了C# 键盘Enter键取代Tab键实现代码,有需要的朋友可以参考一下
    2013-11-11
  • c#哈希算法的实现方法及思路

    c#哈希算法的实现方法及思路

    这篇文章主要介绍了c#哈希算法的实现方法及思路,有需要的朋友可以参考一下
    2013-12-12
  • 如何用C#找出数组中只出现了一次的数字

    如何用C#找出数组中只出现了一次的数字

    数组从字面上理解就是存放一组数,下面这篇文章主要给大家介绍了关于如何用C#找出数组中只出现了一次的数字,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12

最新评论