gpt4 book ai didi

c# - 如何将 Switch 与字典值一起使用?

转载 作者:太空狗 更新时间:2023-10-29 17:36:01 26 4
gpt4 key购买 nike

在我的代码中,我想使用在数据包中编码为一个符号的项目的文本名称。

在通常情况下,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"]: { /* ... */ }
}

工作室说我需要为我的开关使用常量。

如何让它发挥作用?

Upd:此类动物的数量及其值对仅在运行时已知,因此代码不能使用常量(我猜)。

最佳答案

你可以存储一个 Func<T>Action而不是在字典中。

var dict = new Dictionary<int, Action>();
dict.Add(1, () => doCatThing());
dict.Add(0, () => doDogThing());
dict.Add(2, () => doFrogThing());

然后,像这样使用它:

var action = dict[1];
action();

关于c# - 如何将 Switch 与字典值一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com