【发布时间】:2012-05-20 08:25:08
【问题描述】:
在我的代码中,我想使用在数据包中编码为一个符号的项目的文本名称。
在通常情况下,1012 对我来说意味着cat, dog, cat, frog,但这样的配对还有很多,所以很难记住所有这些。有时它们需要更改,所以我想我应该为此使用Dictionary<string, int>。但是后来……
switch (symbol)
{
case "0": { /* ... */ }
case "1": { /* ... */ }
case "2": { /* ... */ }
case "n": { /* ... */ }
}
……变成……
switch (symbol)
{
case kvpDic["cat"]: { /* ... */ }
case kvpDic["dog"]: { /* ... */ }
case kvpDic["frog"]: { /* ... */ }
case kvpDic["something else"]: { /* ... */ }
}
工作室说我需要为我的开关使用常量。
如何让它发挥作用?
更新:这种动物的数量和它们的值对只有在运行时才知道,所以代码不能使用常量(我猜)。
【问题讨论】:
-
你在 switch 块中做什么?基本上你不会能够打开非常量值,所以你需要考虑一些替代方案。有多种选择,但我们需要更多信息。
-
您是否想过使用
enum来代替?还是值在运行时发生变化? -
我将 Texture2D 分配给一个新的精灵,它们在每种情况下都是独一无二的。
-
你在箱子里做什么?
-
听起来可以将其包装在一个方法中,并且可以传入从字典返回的内容。您可以发布示例吗?
标签: c# dictionary switch-statement