メソッドを短くすることについて多くのことを聞き、多くのプログラマーが、メソッド内で#regionタグを使用することは、それが長すぎて複数のメソッドにリファクタリングする必要があることの確かな兆候だと言うことを聞きました。ただし、メソッド内で#regionタグでコードを分離することが、複数のメソッドにリファクタリングするための優れたソリューションである多くの場合があるように思えます。
計算を3つの異なるフェーズに分割できるメソッドがあるとします。さらに、これらの各段階はこのメソッドの計算にのみ関係するため、新しいメソッドに抽出してもコードの再利用はできません。それでは、各フェーズを独自のメソッドに抽出することの利点は何ですか?私が知る限り、私たちが得るのは、読みやすさと、各フェーズの個別の変数スコープです(これにより、特定のフェーズの変更が誤って別のフェーズを壊さないようにすることができます)。
ただし、これらの両方は、各フェーズを独自のメソッドに抽出することなく実現できます。リージョンタグを使用すると、コードを同じように読みやすい形式に折りたたむことができ(コードを展開して調査することにした場合に、このファイルに場所を残す必要がなくなるという追加の利点があります)、単純に各フェーズをラップします{}
動作する独自のスコープを作成します。
この方法で行う利点は、実際には4番目のメソッドの内部動作にのみ関連する3つのメソッドでクラスレベルのスコープを汚染しないことです。長いメソッドをすぐに一連の短いメソッドにリファクタリングすることは、時期尚早な最適化と同等のコード再利用のように思えます。多くの場合決して発生しない問題に対処するために、余分な複雑さを導入しています。コードの再利用の機会が生じた場合、後からいつでも独自のメソッドにフェーズの1つを抽出できます。
考え?
#region
タグを嫌うだけでなく、Visual Studioでコードの折りたたみを完全にオフにします。私は私から隠そうとするコードが好きではありません。