C# “匿名函数”知识点,代码记录

本文通过实例讲解了C#中的匿名函数与委托的使用方法。介绍了如何将匿名函数赋值给委托,并展示了获取数组最大值的具体应用。

今天学习委托时,偶然接触到了匿名函数,感觉挺新奇的,就把代码记录下来,以后有机会全面学习时再拿出来看看!


匿名函数是一个函数的简写,它没有函数名称。

我们把一个函数赋值给委托时,就可以使用匿名函数

下面是简单例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 匿名函数 {

    // 定义委托
    public delegate void DelSayHi(string name);

    class Program {
        static void Main(string[] args) {

            // 匿名函数 (函数的类型是什么取决于委托的定义)
            DelSayHi del = delegate (string name) {
                Console.WriteLine("你好!" + name);
            };  // 这里需要写下分号 ;

            del("张三");


            del = delegate (string name) {
                Console.WriteLine("hello" + name);
            };

            del("李四");

            Console.ReadKey();
        }
    }
}

代码中,我们定义了一个void返回值,有一个string类型参数的委托;
然后我们定义委托时就是用到了匿名函数,将匿名函数赋值给该委托。

匿名函数有没有返回值类型取决于委托有没有。

最后直接通过委托调用函数。

运行截图:
在这里插入图片描述


再写一个例子

获取数组的最大值

代码:

/*匿名函数小例子*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 泛型 {

    // 定义委托,实现两数相减
    public delegate int Delegate(object o1, object o2);


    class Program {
        static void Main(string[] args) {
            object[] arry1 = { 1, 2, 3, 5, 4, 6, 9, 8 };
            object[] arry2 = { "asdfasdlg", "xzvcnryt", "waerw4thbvzxt", "asdfgh" };


            // 匿名函数
            object result = GetMax(arry1, delegate (object o1, object o2) {
                return (int)o1 - (int)o2;
            });
            Console.WriteLine("最大值:" + result);


            // 匿名函数
            object result2 = GetMax(arry2, delegate (object o1, object o2) {
                return o1.ToString().Length - o2.ToString().Length;
            });
            Console.WriteLine("最大值:" + result2);

            Console.ReadKey();
        }

        // 获取数组的最大值
        public static object GetMax(object[] arr, Delegate del) {
            object max = arr[0];

            for (int i = 0; i < arr.Length; i++) {

                // 委托实现max减去arr[i],当小于0,说明max比它小
                if (del(max, arr[i]) < 0) {
                    max = arr[i];
                }
            }

            return max;
        }

    }
}

运行截图:
在这里插入图片描述


总结
注意看匿名函数的定义,知道该怎么定义匿名函数就行了,具体他是用在哪方面,我也不知道,我猜测应该是用在一个函数只调用一次时,就使用匿名函数的方式取调用他吧。

在当代通信技术体系中,信道编解码机制构成了保障信息传输精确度与稳定性的核心要素。本研究聚焦于“采用深度神经网络的信道编解码方法”,构建了包含数据资源、预训练模型及环境配置指南的完整实践框架,为初涉该领域的学习者与科研人员提供了系统化的探索平台。深度神经网络作为机器学习的重要分支,通过构建具有多重隐藏层的网络结构模拟认知学习过程,已在计算机视觉、语言理解及通信工程等多个领域展现出卓越性能。在信道编解码场景中,该技术能够自主捕获复杂的数据分布规律,通过优化噪声抑制策略显著提升通信系统的容错能力。关于信道编码环节,其实质是将原始信息序列转化为具备纠错特性的结构化数据。传统方法包含Turbo码、低密度奇偶校验码与里德-所罗门码等典型方案。而在深度学习范式下,可构建能够自适应信道状态变化的智能编码架构,通过神经网络动态生成最优编码方案。解码过程作为接收端恢复原始信息的关键步骤,需有效克服信道失真与干扰影响。相较于传统的维特比解码算法,基于深度学习的解码器可通过端到端训练实现解码策略的自主优化,从而在误码率指标上获得显著改善。本研究提供的训练数据集模拟了多种典型信道环境,包括加性高斯白噪声信道与多径衰落信道等场景,为模型适应复杂通信条件提供了充分的学习素材。预训练模型基于大规模数据预先优化,可直接部署于实际系统或作为迁移学习的基础框架。实践环境配置需依托Python开发环境,并集成TensorFlow或PyTorch等深度学习框架及相关依赖库。项目代码配备了详尽的注释说明,清晰阐释了各模块的功能逻辑与执行流程,有效降低了学习门槛。该研究平台不仅有助于掌握深度学习在通信领域的应用原理,更能深化对信道编解码关键技术问题的理解,为推进现代通信技术演进提供了重要的实践支撑。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值