"".Equals()
受託開発担当のRyuです。
私は値を比較する場合、変数を左辺に置いて式を記述します。
void func() { int num = 1; if (num == 1) {} string str = "ほげ"; if (str == "ほげ") {} }
比較の記述方法は人によって様々なのでしょうが、普段左辺に変数を記述している人でもあるとき突然、左辺と右辺が逆転してしまうときがあります。
Equalsメソッドを使用するときです。
void func() { string str = "": if ("".Equals(str)) {} // 右辺に変数 }
なぜこういうコードが出現するのかというと、もし変数がnullだった場合Equalsメソッドを実行できないため、nullを参照することによる例外が発生してしまうからです。
この例外を発生させないためには先にnull値と比較を行うか、比較時に必ず実体が存在するリテラルのEqualsを使用します。
毎回null値との比較を行うのが面倒なので、右辺と左辺を逆転して記述するという形になるんですね。
void func() { string str = "": if (str != null && // 記述が面倒 str.Equals("")) {} }
ですが私は非常に神経質なため、どうしても左辺に変数を置いて比較を行いたい。
けれど同時に面倒くさがりやなためnullとの比較を毎回記述するのは嫌です。
そのため以下のように記述します。
void func() { string str = "": if (String.Equals(str, "")) {} }
多少記述量が増えましたが、これなら左辺に変数を置くというルールを守ったまま記述できます。
Equalsメソッドひとつ取っても様々な書き方があります。
どれが正解というものではないので、自分にあったコーディングスタイルを選んでいけたら良いなと思います。