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的问题.

猜你喜欢

转载自blog.csdn.net/qq_40666620/article/details/106208729
今日推荐