public class Fun{ public void IFNumberid(int flag) { switch (flag) { case 1: Console.WriteLine("优秀"); break; case 2: Console.WriteLine("良好"); break; case 3: Console.WriteLine("一般"); break; case 4: Console.WriteLine("不及格"); break; default: Console.WriteLine(""); break; } }
以上Case里面是一个有序的数字,处理方法见 switch中case如果是有序的话,如何处理
那么假如我们换成了以下的事例呢?
public class Fun{ public void NameResult(String flag) { switch (flag) { case "a": Console.WriteLine("优秀"); break; case "张三": Console.WriteLine("良好"); break; case "c": Console.WriteLine("一般"); break; case "g": Console.WriteLine("不及格"); break; default: Console.WriteLine(""); break; } }
这里的Case并不是一个有序的,那么我们利用数组索引的办法将并不可行,此时,则可以考虑使用Dictionary<Tkey, Tvalue>来实现Switch中Case的替换
public class Fun{ public void NameResult(String flag) { Dictionary<string, string> cl = new Dictionary<string, string>(); cl.Add("a","不及格"); cl.Add("张三","良好"); cl.Add("c","一般"); cl.Add("g","不及格"); foreach (KeyValuePair<string, string> a in cl) { if(a.key==flag) { Console.WriteLine(a.Value); return ; } } Console.WriteLine(""); } }
另外,很多时候,我们可能根据某个值直接去执行某个方法,这时,采用以上方法也是可行的,
先声明一个委托
private delegate void EatDelegate(); private void functionOne(){ Console.WriteLine("优秀"); } Dictionary<string, EatDelegate> cl = new Dictionary<string, EatDelegate>(); cl.Add("a",functionOne); foreach (KeyValuePair<string, string> a in cl) { if(a.key==flag) { a.Value(); return; } }
时间: 2024-10-15 06:40:47