[問題] switch case 的case有辦法快速產生嗎?

看板C_Sharp (C#)作者 (4545454554)時間10年前 (2015/06/15 20:53), 10年前編輯推噓1(1015)
留言16則, 8人參與, 最新討論串1/1
各位好 像底下這樣的例子 如果 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

06/15 21:03, , 1F
給你一個建議...好好利用Excel的功能
06/15 21:03, 1F
謝謝 我知道用excel可以合併出來 但我會想知道其他方式 是因為有些case的個數是動態產生的 一開始不知道會有幾個 可能執行階段才會動態決定 所以想問看看case 能不能也動態產生 ※ 編輯: kisha024 (140.127.81.14), 06/15/2015 21:11:19

06/15 21:20, , 2F
不要用switch case,把數字parse出來用個< > ?
06/15 21:20, 2F

06/15 21:21, , 3F
一樣的事情幹嘛還用switch..
06/15 21:21, 3F

06/15 21:45, , 4F
C#可以做到以程式碼產生程式碼...但是絕不推薦這樣做
06/15 21:45, 4F

06/15 21:47, , 5F
如果真的有這樣的需求,說明一下大家比較好幫忙喔!
06/15 21:47, 5F

06/15 22:16, , 6F
推樓上..不然真的這樣寫會發瘋,先說一下是什麼狀況下要用
06/15 22:16, 6F

06/15 23:57, , 7F
只要寫"default"就解決啦
06/15 23:57, 7F

06/16 13:59, , 8F
for(int i = 1; i <= 100; i++)
06/16 13:59, 8F

06/16 13:59, , 9F
{
06/16 13:59, 9F

06/16 13:59, , 10F
Console.WriteLine("case \"BTN{0}\":", i);
06/16 13:59, 10F

06/16 13:59, , 11F
}
06/16 13:59, 11F

06/16 14:00, , 12F
最後ctrl + c ctrl + p
06/16 14:00, 12F

06/16 14:02, , 13F
喔 抱歉 剛剛才看到推文要動態產生@@
06/16 14:02, 13F

06/16 14:03, , 14F
使用event或是 delegate如何?
06/16 14:03, 14F

06/16 16:31, , 15F
動態決定的東西就不要用 switch case 了, 請重構
06/16 16:31, 15F

06/18 13:10, , 16F
if (caseSwitch.StartsWith("BTN")) //dosomething
06/18 13:10, 16F
謝謝大家 我後來發現 我其實沒必要弄BTN1~100的需求 所以 事情就變簡單了 不好意思 ※ 編輯: kisha024 (140.127.81.14), 06/26/2015 17:57:47
文章代碼(AID): #1LVih6Jp (C_Sharp)
文章代碼(AID): #1LVih6Jp (C_Sharp)