当前位置: 代码迷 >> C# >> C# ,能不能用Dictionary存储函数,其后取出来还能用
  详细解决方案

C# ,能不能用Dictionary存储函数,其后取出来还能用

热度:66   发布时间:2016-05-05 02:59:41.0
C# ,能不能用Dictionary存储函数,然后取出来还能用?
小弟想标识一个函数,存储在Dictionary中,需要的时候根据key直接取拿出来用,请问各位大神。C#中有没有这种用法???
------解决思路----------------------
将函数转换成Delegate就行了
Dictionary<string, Delegate>

如果函数有统一的形式,比如void x();,则可以转换成Action
Dictionary<string, Action> d;
d.Add("xxx", new Action(x));
d["xxx"]();
------解决思路----------------------


using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var dic = new Dictionary<int, Action>
                      {
                          [0] = Action1,
                          [1] = Action2
                      };

            foreach (var item in dic.Values)
            {
                item();
            }
        }

        static void Action1() => Console.WriteLine(1);
        static void Action2() => Console.WriteLine(2);
    }
}

  相关解决方案