令人困惑的 If 语句?

2022-09-04 23:41:26

我总是使用If语句(在C#中)作为(1。替代方案);

if (IsSuccessed == true)
{
   //
}

我知道没有必要将“==true”写成(2.备选方案));

if (IsSuccessed)
{
   //
}

但是,我使用它是因为它更具可读性并且不会导致性能问题。当然,这是我的选择,我知道许多软件开发人员更喜欢第一种选择。什么是最佳用法,为什么?


答案 1

我不喜欢第一个选项。这不仅是多余的,而且一个简单的拼写错误会引入一个错误。

考虑一下

bool b = false;

if (b = true) {
   Console.WriteLine("true");
}

显然,代码将输出“true”,但这可能不是程序员的意图。

幸运的是,像Resharper这样的工具会对此发出警告,但它使用默认设置(*)进行编译。

直接使用布尔值将完全解决问题。

(*)公平地说,VS也会对此发出警告,如果您将“警告”作为错误打开,它甚至不会编译。


答案 2

我个人会选择第二种选择。它读起来更自然,表明程序员实际上知道内置类型,这是一等公民。bool


推荐