当前位置: 首页 > news >正文

本地函数 lambda函数 回调函数(c#)

 1

            // 本地函数是指 写在指定代码结构内部的函数 
            // 普通函数创建在类中, 本地函数写在执行的代码逻辑中 


            // 函数定义 
            // 返回值类型 函数名称() { }
            // 本地函数不能实现重载 其他和普通函数一样 

            //void Fun()
            //{
            //    Console.WriteLine("函数内部的逻辑");
            //}

            void Fun(int num, int a = 10, params int[] arrs)
            {
                Console.WriteLine("函数内部的逻辑");
            }

            // 使用本地函数 
            Fun(10);

            // 本地函数和普通函数的区别 
            // 1. 普通函数写在类中,需要使用成员类型关键字以及访问修饰符进行修饰。本地函数需要写在代码逻辑中,不需要成员关键字以及访问修饰符关键字。
            // 2. 本地函数不支持重载,而普通函数支持重载 
            // 3. 本地函数只能在声明本地函数的作用域中使用,普通函数使用范围是通过访问修饰符关键字指定访问位置的 

            // 本地函数和普通函数
            // 1. 本地函数和普通函数 都可以对代码逻辑进行封装
            // 2. 本地函数和普通函数都支持传递参数  (普通参数、有默认值的参数、参数数组 )
            // 3. 本地函数和普通函数都可以指定返回值类型 使用return 关键字返回数据

            // lambda 表达式就是本地函数的简写形式
            // lambda 表达式的值是一个函数  没有函数名称  因此我们需要定义一个函数类型的变量来接收函数 

            // 这个就是函数对应的数据类型 
            //  Func<函数接收的第一个参数类型, 函数接收的第二个参数类型。。。,返回值的类型> 函数类型 

            // lambda 表达式又被成为箭头函数 
            // (函数的参数) => { 函数主体的逻辑  };
            // 变量就是函数的名称 
            Func<string, int, int> func = (string a, int b) =>
            {
                Console.WriteLine("箭头函数执行了");
                return 10;
            };

            // Action 也使用来定义变量接收函数的 
            // 1. 定义无返回值的函数 
            Action func1 = () =>
            {

            };

            // 2. 定义有参无返回值的函数
            Action<int, string> func2 = (int a, string b) =>
            {

            };

            // 1. 使用箭头函数 
            func("123", 10);
            // 1. 箭头函数和本地函数的区别 
            // 1. 箭头函数是通过定义变量的形式存储函数的 而本地函数是直接定义函数名称存储函数
            // 2. 箭头函数在书写是 不需要指定函数的返回值类型 函数名称  但是需要再定义接收的时候写, 本地函数在创建的时候就需要写 
            // 3. 箭头函数相当于是将函数名称和函数主体进行了分离, 本地函数 则是定义函数时就需要指定函数名称 


            // Func 和 Action 的区别 
            // 1. Func 和 Action 都是用来定义变量接收函数的
            // 2. Func 在指定类型时最后一个类型是函数的返回值类型,前面的类型是函数的参数类型。 Action 不会指定函数的返回值类型 全部都是 函数的参数类型 

            // 当我们需要定义有返回值的函数时 Func , 当我们定义无返回值的类型时就用Action

 3

            // 回调函数是函数使用过程中的一种用法 

            // 回调函数 是将函数func作为参数传递给另一个函数func1,在函数func1中调用 func 函数 。呢么func 函数就是func1函数的回调函数

            // 回调函数的作用
            // 1. 可以获取到函数内部的数据
            // 2. 可以在函数内部的逻辑处理完成时执行函数外部的逻辑
            // 3. 可以让函数内部的逻辑在函数外部指定 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _05_回调函数
{internal class Program{static void Main(string[] args){int LocalFunc(string str){Console.WriteLine(str);return 10;}//ForEach(LocalFunc);ForEach((string str) =>{return 20;});Console.ReadLine();}static void ForEach(Func<string, int> callback){//callback 是回调函数 int num = callback("你好我是回调函数");Console.WriteLine("回调函数返回的结果是:" + num);}// }
}


http://www.mrgr.cn/news/56672.html

相关文章:

  • UDP/TCP协议
  • 002_基于django国内运动男装小红书文章数据可视化分析系统的设计与实现2024_qo6cy3i4
  • 清朝笔记()
  • 【C++】踏上C++学习之旅(三):“我“ 与 “引用“ 的浪漫邂逅
  • 10_实现readonly
  • Java设计模式:工厂模式详解
  • Redis内部数据结构ziplist详解
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《需求响应下计及高耗能工业负荷生产流程的经济调度模型》
  • PCDN 的激励机制对平台可持续发展的影响(贰)
  • 闯关leetcode——190. Reverse Bits
  • [论文笔记]ColPali: Efficient Document Retrieval with Vision Language Models
  • PCL SAC-IA 算法实现点云粗配准(永久免费版)
  • 【卡尔曼滤波】观测模型包含输入的线性卡尔曼滤波
  • 输出时间序列中的时区是什么Series.dt.tz_convert(tz)
  • 酒店智能轻触开关的类型及其应用
  • 过零检测比较器电路设计
  • 【数据结构与算法】Java中的基本数据结构:数组、链表、树、图、散列表等。
  • Java | Leetcode Java题解之第502题IPO
  • Android Audio基础——音频混合器介绍(十二)
  • 深入解析 FarmHash 算法C++ 实现与性能优化
  • 【源码+文档】基于SpringBoot+Vue城市智慧社区综合服务平台【提供源码+答辩PPT+参考文档+项目部署】
  • 什么是感知与计算融合?
  • java中double强制转换int引发的OOM问题
  • 大厂物联网(IoT)高频面试题及参考答案
  • AIGC文本生成视频
  • Python中的isinstance和hasattr