C#リーダブルコード #08_boolの比較でTrueやFalseを書かない

当サイトではアフィリエイト広告を利用しています。

リーダブルコード
Subway Station in Munich, Germany. Train coming in. Strong Motion Blur on Train and People, no recognizable Persons.

今回はboolの比較をやっていきたいと思います。

booの比較でTrueやFalseを書かない

次のような_isNormalというboolの値を比較する場合を考えてください。

private bool _isNormal = false;
//booの比較でTrueやFalseを書かない
private void booの比較()
{
}

BAD:冗長なので==tureは不要

boolの値を比較する場合は,trueかfalseしかとり得る値が無いので,次のような_isNormal == trueといったtureやfalseを記載は冗長です。

private bool _isNormal = false;
//booの比較でTrueやFalseを書かない
private void booの比較()
{
    if (_isNormal == true)
    {
        //BAD:冗長なので==tureは不要
    }

    if (_isNormal == false)
    {
        //BAD:冗長なので==falseは不要
    }
}

C#は次のように書けるので,==tureなどの部分は省略して書きます。

if (_isNormal)
{
    //GOOD
}

==falseの場合は否定形にすればいいので頭に「!」をつけて「!_isNormal」と書けば,falseの判定を行います。

if (!_isNormal)
{
    //GOOD
}

この方が見やすくて,コード量も少ないため,GOODです。