C#将方法装进Dictionary中

其实就是利用Action实现函数回调

  1. 如果不是很理解函数毁掉,先看这篇文章,写的可以说是非常非常的简单了,我也只是小白,所以站在小白的角度来写的
    C#简单理解回调函数,用action简单实现

  2. 如果理解的话,那么直接看代码吧,可以说是短小精悍了
    不可能看不懂

using System;
using System.Collections.Generic;
 
public class Test
{
 public static void Main()
 {
 	//我们声明字典,key是string类型,当然了,其他的合适类型也都是可以的
 	//value是Action<string>类型的,直接理解为方法类型就行,但是这个方法只能接受一个string类型的参数
   Dictionary<string,Action<string>> test1 = new Dictionary<string,Action<string>>();
   
	//把我们声明的只接收一个string参数的方法放进去
   test1.Add("myAction1",TestAction1);
   
   	//调用即可,应该会打印出
   	//Hello world
   test1["myAction1"]("Hello world");
 }
 
 //定义一个方法,用来放进Dictionary中
 public static void TestAction1(string param)
 {
     Console.WriteLine(param);
 }
}

补充
没有说只能回调static的函数,比如下面的这段代码

using System;
using System.Collections.Generic;
 
public class Test
{
 public static void Main()
 {
   Dictionary<string,Action<string>> test1 = new Dictionary<string,Action<string>>();
   
   //声明一个类的实例
   Test myTestClass = new Test();
   //将实例中的函数放进去
   test1.Add("myAction1",myTestClass.TestAction1);
   test1["myAction1"]("Hello world");
 }
 
 //声明为非staitc的函数
 public void TestAction1(string param)
 {
     Console.WriteLine(param);
 }
}

有同学问:为什么不直接把函数放进去,还非要声明一个实例呢?
同学啊,不是static的方法就不是类的方法啊,只能通过实例来调用,不是dictionary的问题.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值