【发布时间】:2015-06-30 08:28:53
【问题描述】:
我有一个包含以下项目的菜单:
Orange
Apple
Lemon
Banana
每个项目都有自己的 Uid,例如1 为橙色,2 为苹果等。当从菜单中单击“苹果”时,将弹出一个消息框并显示“已选择苹果”。我知道这可以通过使用 switch case 来完成,但我不想逐个处理,而是想让它更灵活。例如:
MenuItem menuItem=(MenuItem)e.OriginalSource;
int itemUid=Int32.Parse(menuItem.Uid);
for (itemUid = 1; itemUid <= menuItem.Items.Count; itemUid++)
{
switch (itemUid)
{
case itemUid: Console.WriteLine("{0} is chosen", menuItem.Header); break;
}
}
问题在于case语句,它只能接受常量。
有解决这个问题的建议吗?
【问题讨论】:
-
一个
if语句会更合适,因为无论如何你只有一个比较 -
这是伪代码吗?
case 1:会工作 -
您将解析后的值分配给 itemUid 并通过在 for 循环头之后再次分配给它来丢弃它。此外,我不太确定您要做什么,您能否尝试更多地解释“更灵活”的含义?
-
switch (itemUid)和case itemUid似乎不合逻辑... -
foreach 怎么样?
标签: c# wpf switch-statement