日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于重构之Switch的处理【二】

發布時間:2023/11/30 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于重构之Switch的处理【二】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面寫了一個Switch的處理的例子,

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;???           ????????

              }

???????????       }             ?


?

轉載于:https://www.cnblogs.com/wangyong969/archive/2011/01/06/1926940.html

總結

以上是生活随笔為你收集整理的关于重构之Switch的处理【二】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。