0 c# random if-statement case switch-statement
我听说有很多方法可以清理代码并使代码更快地运行.你能帮我清除下面的代码吗?我的程序上有很多编码,看起来像下面的代码.我还是C#的初学者
case "jarvis":
if (ranNum == 1) { QEvent = ""; JARVIS.Speak("Yes sir"); }
else if (ranNum == 2) { QEvent = ""; JARVIS.Speak("Yes, whats up?"); }
else if (ranNum == 3) { QEvent = ""; JARVIS.Speak("Yes, I'm here"); }
else if (ranNum == 4) { QEvent = ""; JARVIS.Speak("I'm here"); }
else if (ranNum == 5) { QEvent = ""; JARVIS.Speak("go head sir, "); }
else if (ranNum > 5) { QEvent = ""; JARVIS.Speak("I'm listening"); }
break;
Run Code Online (Sandbox Code Playgroud)
使用干净代码的主要好处不是让它更快地执行 - 尽管这通常是一个结果 - 但是如果需求发生变化则更容易维护和修改.
也就是说,我建议将所有可能传递的字符串存储JARVIS.Speak在一个数组中,如下所示:
string[] javisSays = new[] {
"Yes sir",
"Yes, whats up?",
"Yes, I'm here",
"I'm here",
"go head sir, ",
"I'm listening"
};
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样构造你的case语句:
case "jarvis":
if (ranNum > 0)
{
QEvent = "";
var quote = jarvisSays[Math.Min(ranNum, jarvisSays.Length) - 1];
JARVIS.Speak(quote);
}
break;
Run Code Online (Sandbox Code Playgroud)