本地函数 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);
        }

        // 
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值