对于以下这两种方法,有什么区别吗?抛开代码可读性,Method1
会消耗更少的内存,而Method2
执行得更快吗?
一般情况下,我总是使用哪一个?
public void Method1(string userInput)
{
if (userInput.ToLower().Replace(" ", "") == "optiona")
{
}
else if (userInput.ToLower().Replace(" ", "") == "optionb")
{
}
else
{
}
}
public void Method2(string userInput)
{
string modifiedInput = userInput.ToLower().Replace(" ", "");
if (modifiedInput == "optiona")
{
}
else if (modifiedInput == "optionb")
{
}
else
{
}
}
答案 0 :(得分:2)
一般情况下,我更喜欢method2
,因为您无需反复重复操作。
但最终它是一种微观优化。由于操作会创建一个新字符串,您可能会发现method2
稍微好一点。
但最后,如果你想找到最快的2匹马中的哪一匹,那么就跑吧。
答案 1 :(得分:0)
如果用户输入为“optionb”,则method2会更好,如果用户输入的“optiona”超过平均值,则method1和method2将没有可识别的差异。
答案 2 :(得分:0)
我也喜欢method2。但不是因为@David提到的性能原因。
方法2更容易阅读。
使用临时变量会为方法添加额外的行。这个额外的行反映了您的方法中真正发生的额外操作步骤。
特别是当你给这个变量一个有意义的名字" modifiedInput"时,其他程序员将更容易理解你的方法在做什么。
更容易理解代码意味着更好的可维护性。