C# 简单回调函数,模拟实现JS的回调

前言

我最近在查C#的回调函数怎么弄,结果折腾了半天还是没解决。我看网上写的都贼复杂。但是大家知道C#其实是Java和JS的混合体。他继承了他们中的优点,拥有极强的语法糖。这里我还是自己折腾出回调函数是如何模仿JS写的。

简单的异步函数

定义

我这里定义回调函数。回调函数我就是拿来回调的,我不是拿来入参的。回调函数最大的特点就是异步性。就是我和你约定好你给我传回来的是什么值,我把怎么解决的方法设置好。之后等你返回就行了。
回调函数如下(我个人定义)

public void Function(Action<回调参数> callback)
{
    
    
	...其他步骤
    callback(参数);
}

代码

internal class Program
    {
    
    

        private static Person person;
        static void Main(string[] args)
        {
    
    
            person = new Person()
            {
    
    
                Name = "小明",
                Age = 15
            };
            person.GetInfo((a,b) =>
            {
    
    
                Console.WriteLine("我是回调函数");
                Console.WriteLine($"姓名:{a},年龄{b}");
            });
            person.GetInfoDelay((a, b) =>
            {
    
    

                Console.WriteLine("我等线程跑完");
                Console.WriteLine($"姓名:{a},年龄{b}");
            });

            Console.ReadLine();
        }

    }
    public class Person{
    
    
        public string Name {
    
     get; set; }

        public int Age {
    
     get; set; }

        /// <summary>
        /// 回调函数
        /// </summary>
        /// <param name="callback"></param>
        public void GetInfo(Action<string, int> callback)
        {
    
    

            callback(Name, Age);
        }

        public void GetInfoDelay(Action<string, int> callback)
        {
    
    
            for(var i = 0; i < 10; i++)
            {
    
    
                Console.WriteLine(i);
                Thread.Sleep(1000);
            }
            callback(Name, Age);

        }

    }

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44695769/article/details/131819782