【发布时间】:2015-01-06 09:54:00
【问题描述】:
我们在工作中讨论了代码设计,其中一个问题是在处理对布尔方法调用的响应时,如下所示:
bool ok = IsEverythingOK();
if(ok)
{
//do somehthing
}
我的一个同事坚持我们跳过额外的变量 ok 并写
if(IsEverythingOK())
{
//do somehthing
}
因为他说使用“bool ok”语句在记忆方面不好。
我们应该使用哪一个?
【问题讨论】:
-
您不必担心。可以忽略不计。
-
效率没有区别。我个人更喜欢第二种形式,因为我认为它更容易阅读,但这只是我的意见。不过,我可能会将函数重命名为 EverythingIsOK。
-
@500-InternalServerError 我觉得很奇怪你会这样命名一个函数(返回一个布尔值)。我工作过的所有地方都使用
IsSomethingValid或它的变体。 -
如果你曾经使用过调试器,将鼠标悬停在 'ok' 变量上也很不错 :)
-
当然,因为
bool使用 32 位内存,最好不要创建局部变量。毕竟在标准的 8GB 机器上,这将浪费 268,435,456 分之一的可用内存。无论您做什么,都没有一百万个嵌套 if 的四分之一!