作者kisha024 (4545454554)
看板C_Sharp
标题[问题] switch case 的case有办法快速产生吗?
时间Mon Jun 15 20:53:24 2015
各位好
像底下这样的例子 如果 case "BTN1" 到 "BTN100" 都做一样的事
有办法用个回圈或其他更快的方法来叙述这些case吗?
还是只能一行一行硬把这100个case写出来?
谢谢
switch (caseSwitch)
{
case "BTN1":
case "BTN2":
.
.
.
case "BTN100":
// dosomething
break;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.127.81.14
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1434372806.A.4F3.html
1F:→ m339606: 给你一个建议...好好利用Excel的功能 06/15 21:03
谢谢 我知道用excel可以合并出来
但我会想知道其他方式 是因为有些case的个数是动态产生的 一开始不知道会有几个
可能执行阶段才会动态决定 所以想问看看case 能不能也动态产生
※ 编辑: kisha024 (140.127.81.14), 06/15/2015 21:11:19
2F:→ ssccg: 不要用switch case,把数字parse出来用个< > ? 06/15 21:20
3F:→ GoalBased: 一样的事情干嘛还用switch.. 06/15 21:21
4F:→ m339606: C#可以做到以程式码产生程式码...但是绝不推荐这样做 06/15 21:45
5F:→ m339606: 如果真的有这样的需求,说明一下大家比较好帮忙喔! 06/15 21:47
6F:→ daimom: 推楼上..不然真的这样写会发疯,先说一下是什麽状况下要用 06/15 22:16
7F:→ O187: 只要写"default"就解决啦 06/15 23:57
8F:→ bantime: for(int i = 1; i <= 100; i++) 06/16 13:59
9F:→ bantime: { 06/16 13:59
10F:→ bantime: Console.WriteLine("case \"BTN{0}\":", i); 06/16 13:59
11F:→ bantime: } 06/16 13:59
12F:→ bantime: 最後ctrl + c ctrl + p 06/16 14:00
13F:→ bantime: 喔 抱歉 刚刚才看到推文要动态产生@@ 06/16 14:02
14F:→ bantime: 使用event或是 delegate如何? 06/16 14:03
15F:→ uranusjr: 动态决定的东西就不要用 switch case 了, 请重构 06/16 16:31
16F:推 pennymarkfox: if (caseSwitch.StartsWith("BTN")) //dosomething 06/18 13:10
谢谢大家 我後来发现 我其实没必要弄BTN1~100的需求 所以 事情就变简单了 不好意思
※ 编辑: kisha024 (140.127.81.14), 06/26/2015 17:57:47