用Dictionary替換switch case提高維護性
private string GetNationValue(string s) { string result = "5"; switch (s) { case "01": result = "漢族"; break; case "02": result = "藏族"; break; case "03": result = "壯族"; break; case "04": result = "朝鮮族"; break; //這裡省略其它...... } return result; } private string GetNationKey(string s) { string result = "5"; switch (s) { case "漢族": result = "01"; break; case "藏族": result = "02"; break; case "壯族": result = "03"; break; case "朝鮮族": result = "04"; break; //這裡省略其它...... } return result; }
這麼長的程式碼很醜陋,要修改也不容易,可以通過Dictionary來改進,鍵和值是成對寫在一起的,非常容易維護,改寫後代碼如下:
使用:public enum FormatType { GetKey, GetValue } public class Format { private static string Get(Dictionary<string, string> dict, FormatType formatType, string code) { if (formatType == FormatType.GetKey) return dict.FirstOrDefault(d => d.Value == code).Key; else return dict.FirstOrDefault(d => d.Key == code).Value; } public static string GetNation(FormatType formatType, string code) { Dictionary<string, string> dict = new Dictionary<string, string>{ {"01","漢族"}, {"02","藏族"}, {"03","壯族"}, {"04","朝鮮族"} //這裡省略其它...... }; return Get(dict, formatType, code); } }
獲取"漢族"的編碼
string key = Format.GetNation(FormatType.GetKey, "漢族");
獲取"01"代表的民族
string value = Format.GetNation(FormatType.GetValue, "01");
相關推薦
用Dictionary替換switch case提高維護性
用switch case處理一個很長的判斷,例如56個民族01代表漢族,02代表藏族,03代表壯族...,當傳入數字想獲取民族名稱時就得寫56個case,當傳入民族獲取背後的數字時,又得再寫56個case,如下所示:p
python用字典實現switch..case類似的函數調用
python info 調試 turn return 字典 elif 實現 不同 python中沒有swich..case,若要實現一樣的功能,又不想用if..elif來實現,可以充分利用字典進行實現 主要是想要通過不同的key調用不同的方法,在學習過程中,發現不管輸入的k
用AOP來讓你的JS程式碼變得更有可維護性吧
此文已由作者吳佳祥授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 好吧我承認這是篇任務。 最近看到個訊息,ES2017已經定稿了,心想,我去,還完全沒了解ES2016呢,ES8就定稿了,out了,這可咋辦,趕緊Google(Baidu)去! 不過從ES6(2015)之後,tc39的
用switch,case 輸入一個數字,輸出相對應的福娃的名字
package p1; import java.util.Scanner; /** auther:xiuran-hua function:用switch,case 輸入一個數字,輸出相對應的福娃的名字  
淺談如何提高自動化測試的穩定性和可維護性 (pytest&allure)
裝飾器與出錯重試機制 談到穩定性,不得不說的就是“出錯重試”機制了,在自動化測試中,由於環境一般都是測試環境,經常會有各種各種的抽風情況影響測試結果,這樣就為測試的穩定性帶來了挑戰,畢竟誰也不想自己的指令碼一天到晚的出各種未知問題,而往往這種環境的抽風(通常是前端頁面的響應速度和後端介面的
用 Python 實現簡單的 switch/case 語句
在Python中是沒有Switch / Case語句的,很多人認為這種語句不夠優雅靈活,在Python中用字典來處理多條件匹配問題字典會更簡單高效,對於有一定經驗的Python玩家不得不承認,的確如此。 但今天我們還是來看看如果一定要用Python來Switch /
重構一:用多型替換switch語句
程式設計中我們儘量少用switch語句,使用switch語句會出現大量重複程式碼,我們可以採用java的多型特性,使用state模式來替換switch語句,具體方式如下: 舉個例子,假設一個電影租賃的程式,包括客戶(Customer)、租賃(
比Switch case 更高效的方法:字典(Dictionary) + 委託(delegate)
Hello,我是KitStar 以下文章整理的不對。還請見諒 以下程式碼書寫於Unity3D中。 眾所周知,在C#中。一條switch語句允許測試一個變數在等於多個值的時的情況
用陣列代替if-else和switch-case語句
表驅動法(Table-Driven Approach),通過在表中查詢資訊,來代替很多複雜的if-else或者switch-case邏輯判斷。這是一種設計的技巧,可以應用很多的場合,不僅可以提高程式的效能,也能大大減少程式碼量,使得程式碼變得高效和優雅。下面將
用函式指標簡化if/else switch/case
開發中常遇到一族同類型函式的處理呼叫情況,開始時候簡單情況就使用if / else 處理,等分支情況越來越多事,程式碼看起來就很長且不易維護,這種時候可以考慮使用函式指標對映來簡化程式碼。#includ
如何提高程式碼可讀性、可維護性
高質量程式碼的三大要素: 可讀性、可維護性和可變更性 做好程式碼規範、提高程式碼質量,能顯著增強程式碼的可讀性、可維護性和可變更性。努力提高程式碼的讀寫可維護性,是做好程式碼規範的必要非充分條件。程式碼規範和架構設計是軟體的靈魂所在,程式碼質量偏低,就像是人失去了三魂七魄中
用查表法代替switch-case
更加符合close-open原則,即對修改封閉,對擴充套件開放,增加程式碼的穩定性及可維護性。以Windows的訊息處理函式為例,典型的Win32 API程式中這樣處理訊息:LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMs
Java--什麼時候用if什麼時候用switch case呢?
雖然兩者很想,但是在實際程式設計的時候,貌似大多數人都傾向於選擇if else這種結構。 1.如果判斷的具體值不多,並且是byte、int、short、char型別的數值,建議使用switch cas
C++11新特性,實現用字串作為switch的case子句
有時候,我們想寫出下面這樣的switch語句: const char* str = "first"; switch(str){ case "first": cout << "1st one" << endl;
軟體的可維護性與可複用性
我們常說一個好的系統設計在於其有較高的可維護性和較高的可複用性。其實可維護性與可複用性是兩個獨立的目標,並不總是方向一致。 軟體的維護就是軟體的再生。一個好的軟體設計,必須能夠允許新的設計要求以較為容易和平穩的方式加入到已有的系統中。但實際上,現有大多數軟體
將成員變數宣告為private和用非成員、非友友提高封裝性(Effective C++_22、23))
一、將成員變數宣告為private (條款22) ■ 切記將成員變數宣告為private.這可賦予客戶訪問資料的一致性,可細微劃分訪問控制,允諾約束條件獲得保證, 並提供class作者以充分的實現彈性. ■ protected並不比public
C語言中switch...case語句中break的重要性
不能 實現 比例 重要性 case語句 毫無 ... 應該 switch 在C語言中switch...case語句是經常用到的,下面我介紹一下在使用該語句時候需要註意的一個細節問題。話不多說,直接舉例子: 例子1: switch(fruit) { case 1:printf
switch… case 語句的用法
[] other sta rgs bsp str 復制代碼 ring 表達 public class Test7 { public static void main(String[] args) { int i=5; switch
【java】switch case支持的7種數據類型
包裝類 mac 打開 拆箱 創建 eval get trade ocs switch表達式後面的數據類型只能是byte,short,char,int四種整形類型,枚舉類型和java.lang.String類型(從java 7才允許),不能是boolean類型。 在網上看到
JS入門基礎(if else 與 switch case / node安裝)
json health 案例 js文件 動作 require 步驟 *** 命令 在 JavaScript 中,為不同的決定來執行不同的動作,我們可使用以下條件語句: if 語句 - 只有當指定條件為 true 時,使用該語句來執行代碼 if...else 語句 - 當條