Dictionary 存储函数,方法

这段代码示例,我想大家应该经常简单用到,用来对一个数据进行不同的处理,但是总有种感觉是不是好像有点,怎么说呢,多余?

public static void Main(string[] arg)
{
    string param = "test";
    if (param.Contains("dte"))
    {
        FunA();
    }
    else if (param.Contains("es"))
    {
        FunB();
    }
}
public static void FunA()
{
    Console.WriteLine("A方法调用");
}
public static void FunB()
{
    Console.WriteLine("B方法调用");
}

那么我们看看下面这一段

private static readonly Dictionary<string, Action> test = new Dictionary<string, Action>() { { "dte", FunA }, { "es", FunB } };
public static void FunA()
{
    Console.WriteLine("A方法调用");
}
public static void FunB()
{
    Console.WriteLine("B方法调用");
}
public static void Main(string[] arg)
{
    string param = "test";
    foreach (var item in test)
    {
        if (param.Contains(item.Key))
        {
            item.Value();
            break;
        }
    }
}

是不是一下头上的灯泡亮了,任你 else if 再多,我只用在 Dictionary 追加就行了。

posted @ 2021-09-10 10:30  黑糖玛奇朵  阅读(82)  评论(0编辑  收藏  举报