令人困惑的 If 语句?
2022-09-04 23:41:26
我总是使用If语句(在C#中)作为(1。替代方案);
if (IsSuccessed == true)
{
//
}
我知道没有必要将“==true”写成(2.备选方案));
if (IsSuccessed)
{
//
}
但是,我使用它是因为它更具可读性并且不会导致性能问题。当然,这是我的选择,我知道许多软件开发人员更喜欢第一种选择。什么是最佳用法,为什么?
我总是使用If语句(在C#中)作为(1。替代方案);
if (IsSuccessed == true)
{
//
}
我知道没有必要将“==true”写成(2.备选方案));
if (IsSuccessed)
{
//
}
但是,我使用它是因为它更具可读性并且不会导致性能问题。当然,这是我的选择,我知道许多软件开发人员更喜欢第一种选择。什么是最佳用法,为什么?
我不喜欢第一个选项。这不仅是多余的,而且一个简单的拼写错误会引入一个错误。
考虑一下
bool b = false;
if (b = true) {
Console.WriteLine("true");
}
显然,代码将输出“true”,但这可能不是程序员的意图。
幸运的是,像Resharper这样的工具会对此发出警告,但它使用默认设置(*)进行编译。
直接使用布尔值将完全解决问题。
(*)公平地说,VS也会对此发出警告,如果您将“警告”作为错误打开,它甚至不会编译。
我个人会选择第二种选择。它读起来更自然,表明程序员实际上知道内置类型,这是一等公民。bool