6 个解决方案
#1
函数包括函数名、参数表和返回值啊
其实感觉反射和你所想的差不多。。。
其实感觉反射和你所想的差不多。。。
#2
怎么个用法?或者你可以存委托
#3
将函数转换成Delegate就行了
Dictionary<string, Delegate>
如果函数有统一的形式,比如void x();,则可以转换成Action
Dictionary<string, Action> d;
d.Add("xxx", new Action(x));
d["xxx"]();
Dictionary<string, Delegate>
如果函数有统一的形式,比如void x();,则可以转换成Action
Dictionary<string, Action> d;
d.Add("xxx", new Action(x));
d["xxx"]();
#4
如果你确定要这么做的话,就像1楼所说的,用反射。
Dictionary<"函数名","函数名"> func=new Dictionary<"函数名","函数名">;
func.Add("Func1","Func1");
func.Add("Func1","Func1");
用的时候直接type.GetMethod(func["Func1"]);
感觉这样还不如用List<string>存放函数名
Dictionary<"函数名","函数名"> func=new Dictionary<"函数名","函数名">;
func.Add("Func1","Func1");
func.Add("Func1","Func1");
用的时候直接type.GetMethod(func["Func1"]);
感觉这样还不如用List<string>存放函数名
#5
用Action 或者Func
#6
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);
}
}
#1
函数包括函数名、参数表和返回值啊
其实感觉反射和你所想的差不多。。。
其实感觉反射和你所想的差不多。。。
#2
怎么个用法?或者你可以存委托
#3
将函数转换成Delegate就行了
Dictionary<string, Delegate>
如果函数有统一的形式,比如void x();,则可以转换成Action
Dictionary<string, Action> d;
d.Add("xxx", new Action(x));
d["xxx"]();
Dictionary<string, Delegate>
如果函数有统一的形式,比如void x();,则可以转换成Action
Dictionary<string, Action> d;
d.Add("xxx", new Action(x));
d["xxx"]();
#4
如果你确定要这么做的话,就像1楼所说的,用反射。
Dictionary<"函数名","函数名"> func=new Dictionary<"函数名","函数名">;
func.Add("Func1","Func1");
func.Add("Func1","Func1");
用的时候直接type.GetMethod(func["Func1"]);
感觉这样还不如用List<string>存放函数名
Dictionary<"函数名","函数名"> func=new Dictionary<"函数名","函数名">;
func.Add("Func1","Func1");
func.Add("Func1","Func1");
用的时候直接type.GetMethod(func["Func1"]);
感觉这样还不如用List<string>存放函数名
#5
用Action 或者Func
#6
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);
}
}