2012-10-19 39 views
0

我在看一些代码,我看一条线,看起来像这样:使用INT VS布尔

// 1 if timer is executing, else 0 
private int _inTimer; 

这似乎是一个二进制符号。你要么在计时器中,要么你不在。

你为什么要声明这是一个int,而不是一个布尔值?

我能理解的情况下,如果你最终想要添加不同的状态,但后来我认为使用枚举。

+8

并不是所有的代码都是完美的... –

+1

该字段是否从外部来源填充? – Sklivvz

+1

也许这是最初的C代码翻译成C#或由一个程序员编写,通常编码C –

回答

1

如果它打算像bool使用,使用bool。这将使其他开发人员更容易理解其意图。一个整数保持没有人远离分配高于1的东西,布尔仅限于使用truefalse

4

唯一的原因,我能想象使用int在这里 - 如果超过一件事可能是在计时器一次。验证它,如果这个变量不作为计数器,比重构这个代码立即:)

4

的人可能并不了解Boolean。此外,也许有更多的国家正在跟踪int比实际评论。所有这一切说,我同意,基于代码中的这些意见,我会使用bool,如果需要超过2个州,我会使用Enum,但我再也不会知道你从中得到的代码库的实现细节。

1

事实上,没有理由在这里使用intbooleanenum显然是更好的选择,但我不会为这么小的事情烦恼。我敢打赌,有更多的更改可以使代码更好,而不是像这样小的东西。