gpt4 book ai didi

c# - 重构长 switch 语句

转载 作者:太空狗 更新时间:2023-10-29 18:27:01 25 4
gpt4 key购买 nike

我是用 c# 编写的程序,您可以通过口述命令进行控制,所以现在我有一个很长的 switch 语句。有点像

switch (command)

{
case "Show commands":
ProgramCommans.ShowAllCommands();
break;
case "Close window":
ControlCommands.CloseWindow();
break;
case "Switch window":
ControlCommands.SwitchWindow();
break;
}

等等

几乎所有情况都只调用一个方法,方法不在一个类中而是分布在多个类中。所以问题是,我如何才能将此开关重构为更优雅的方式?

最佳答案

您可以这样做来重构您的 switch 语句:

var commands = new Dictionary<string, Action>()
{
{ "Show commands", () => ProgramCommans.ShowAllCommands() },
{ "Close window", () => ControlCommands.CloseWindow() },
{ "Switch window", () => ControlCommands.SwitchWindow() },
};

if (commands.ContainsKey(command))
{
commands[command].Invoke();
}

这种方法的主要优点是您可以在运行时更改“开关”。

关于c# - 重构长 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20586041/

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