今回は中括弧に関するルールと,改行に関するルールを解説していきます。
If文やfor文を中括弧なしで書いてはいけない
If文を1行や2行で書いた場合
C#ではif文を1行で書くことができます。
if (productId == 0) return 0;
このように1行で書いてもコンパイルは通りますが,スタイルコップアナライザーの警告がでます。
SA1503
中括弧が省略されている旨の警告です。
If文やfor文は1行または2行で中括弧なしで記述することができますが,そうしてしまうと,今後の修正で,処理を追加したときにバグりやすくなるという理由で,中括弧を書くことを推奨しています。
こんな感じで中括弧なしで書いているif文に,処理を1行追加したとします。
このように,真ん中にthis.value=2と書いてしまうと,完全にバグになります。この場合,if文がtrueの場合はthis.value=2を通りますが,return this.value;はif文の外側になってしまいます。
実際はこのように,2行とも,trueの時に通したいわけですから,処理が変わってきます。
今回の例では結果的にどちらの行も通過するかもしれませんが,こういった意図しない動きをするためバグというものが生まれてしまうので,今後のメンテナンスを考慮して,すべてのif文とfor文は中括弧を省略せずにコーディングしましょうというのが,今回のルールとなります。ですので中括弧を入れることでこの警告は消えます。
同じ理由で次のようなfor文も警告が出ます。
次のように中括弧ありで記述してください。
中括弧で終わっている次の行は改行する
このように,for文などの中括弧で閉じた後に,すぐにコードがあると警告になります。
SA1513
中括弧で閉じた次の行にコードがあると警告となります。これは読みやすさのルールで,if文やfor文の塊がわかりやすいようにしています。ですので,中括弧で閉じた後は,必ず,1行改行してから次のコードを書くようにしてください。
このように改行すると,警告が消えます。