这段代码示例,我想大家应该经常简单用到,用来对一个数据进行不同的处理,但是总有种感觉是不是好像有点,怎么说呢,多余?
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 追加就行了。