gpt4 book ai didi

c# - 将 'switch' 与资源文件中的字符串一起使用

转载 作者:可可西里 更新时间:2023-11-01 03:14:00 25 4
gpt4 key购买 nike

我的资源 (.resx) 文件中有一堆字符串。我试图直接将它们用作 switch 语句的一部分(请参阅下面的示例代码)。

class Test
{
static void main(string[] args)
{
string case = args[1];
switch(case)
{
case StringResources.CFG_PARAM1: // Do Something1
break;
case StringResources.CFG_PARAM2: // Do Something2
break;
case StringResources.CFG_PARAM3: // Do Something3
break;
default:
break;
}
}
}

我查看了一些解决方案,其中大多数似乎建议我需要将它们声明为 const string 我个人不喜欢。我喜欢这个问题的最高投票解决方案:using collection of strings in a switch statement .但是我需要确保资源文件中的 enumstrings 绑定(bind)在一起。我想知道一种简洁的方法。

编辑:还发现 this great answer在研究如何使用 Action 时:

最佳答案

你可以使用 Dictionary<string, Action> .你放一个 Action (方法的委托(delegate))为字典中的每个字符串并搜索它。

var actions = new Dictionary<string, Action> {
{ "String1", () => Method1() },
{ "String2", () => Method2() },
{ "String3", () => Method3() },
};

Action action;

if (actions.TryGetValue(myString, out action))
{
action();
}
else
{
// no action found
}

作为旁注,如果 Method1已经是 Actionvoid Method1()方法(没有参数也没有返回值),你可以这样做

    { "String1", (Action)Method1 },

关于c# - 将 'switch' 与资源文件中的字符串一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5097129/

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