看板 C_Sharp 關於我們 聯絡資訊
各位好 像底下這樣的例子 如果 case "BTN1" 到 "BTN100" 都做一樣的事 有辦法用個迴圈或其他更快的方法來敘述這些case嗎? 還是只能一行一行硬把這100個case寫出來? 謝謝 switch (caseSwitch) { case "BTN1": case "BTN2": . . . case "BTN100": // dosomething break; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.127.81.14 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1434372806.A.4F3.html
m339606: 給你一個建議...好好利用Excel的功能 06/15 21:03
謝謝 我知道用excel可以合併出來 但我會想知道其他方式 是因為有些case的個數是動態產生的 一開始不知道會有幾個 可能執行階段才會動態決定 所以想問看看case 能不能也動態產生 ※ 編輯: kisha024 (140.127.81.14), 06/15/2015 21:11:19
ssccg: 不要用switch case,把數字parse出來用個< > ? 06/15 21:20
GoalBased: 一樣的事情幹嘛還用switch.. 06/15 21:21
m339606: C#可以做到以程式碼產生程式碼...但是絕不推薦這樣做 06/15 21:45
m339606: 如果真的有這樣的需求,說明一下大家比較好幫忙喔! 06/15 21:47
daimom: 推樓上..不然真的這樣寫會發瘋,先說一下是什麼狀況下要用 06/15 22:16
O187: 只要寫"default"就解決啦 06/15 23:57
bantime: for(int i = 1; i <= 100; i++) 06/16 13:59
bantime: { 06/16 13:59
bantime: Console.WriteLine("case \"BTN{0}\":", i); 06/16 13:59
bantime: } 06/16 13:59
bantime: 最後ctrl + c ctrl + p 06/16 14:00
bantime: 喔 抱歉 剛剛才看到推文要動態產生@@ 06/16 14:02
bantime: 使用event或是 delegate如何? 06/16 14:03
uranusjr: 動態決定的東西就不要用 switch case 了, 請重構 06/16 16:31
pennymarkfox: if (caseSwitch.StartsWith("BTN")) //dosomething 06/18 13:10
謝謝大家 我後來發現 我其實沒必要弄BTN1~100的需求 所以 事情就變簡單了 不好意思 ※ 編輯: kisha024 (140.127.81.14), 06/26/2015 17:57:47