gpt4 book ai didi

.net - 使用更优雅的代码重构多个 switch 语句

转载 作者:行者123 更新时间:2023-12-02 15:09:28 34 4
gpt4 key购买 nike

在我的应用程序中,我必须在许多方法中基于变量值(m_iIndex)执行许多任务。为了实现它,我在大多数方法中使用 switch case 语句

例如:

MathMethod()
{
switch(m_iIndex)
{
case 0 : CallAddition(); break;
case 1 : CallSubtraction(); break;
case 2 : CallMultiplication(); break;
case 3 : CallDivision(); break;
}
}


StrangeMethod()
{
switch(m_iIndex)
{
case 0 : CallStrange(10,"John"); break;
case 1 : CallStrange(20,"Paul"); break;
case 2 : CallStrange(30,"Kurt"); break;
case 3 : CallStrange(40,"Mark"); break;
}
}

对于另外 10 种以上的方法,这种情况会持续下去。我想知道是否有一种方法可以通过减少我所有方法中的 switch case 语句来使这段代码更加优雅和简短。

最佳答案

假设您的方法 MathMethod()StrangeMethod() 以及成员 m_iIndex 是类 YourClass 的一部分。尝试消除m_iIndex;相反,使用 YourClass 的子类,其中 MathMethodStrangeMethod 是虚拟的,并在您的子类中被覆盖。

Here您会找到更详细的答案。

关于.net - 使用更优雅的代码重构多个 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185817/

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