考え事。

いまのとこ相手にしてるコードが楽しくて泣きそう。現物はもうすこしエグいが薄めて書いた。

-----------------------------------------------------------------------

private bool CalcMethod(J001Form ParentForm){ /*ParentFormは呼び出し元Form*/
/*この辺略*/
if (h[hindex].count_1 >= 15){
    if ((decimal)h[hindex].valueA_1 + (decimal)h[hindex].valueB_1 > int.MaxValue)
        return false;
    h[hindex].sum_1 = h[hindex].valueA_1 + h[hindex].valueB_1;
}
if (h[hindex].count_2 >= 15){
    if ((decimal)h[hindex].valueA_2 + (decimal)h[hindex].valueB_2 > int.MaxValue)
        return false;
    h[hindex].sum_2 = h[hindex].valueA_2 + h[hindex].valueB_2;
}
if (h[hindex].count_3 >= 15){
    if ((decimal)h[hindex].valueA_3 + (decimal)h[hindex].valueB_3 > int.MaxValue)
        return false;
    h[hindex].sum_3 = h[hindex].valueA_3 + h[hindex].valueB_3;
}
/*以下中途returnのない処理が数百行続くが略*/

/*途中ParentFormへのアクセス(I\O)が数行ある*/
return true;
}

-----------------------------------------------------------------------

これの改修を担当することになったのだが
・h[hindex]の連発
・_1,_2,_3
を見てイラッとしてきたんでなんとかしなければと。


いわゆるリファクタリングとなると、ユニットテストとやらを書きたいとこだが、ひっかかってるのは
・引数にフォーム
・フォームのコンストラクタでプロジェクト特有のいろいろなことを裏でやってそう
・メソッドが長大。直すのは上記含む数行なのに。
・直す部分に引数のフォーム関係なくね?
・直す部分だけVisualStudioのメソッド抽出かけることができない(中途returnが邪魔)
etc

 

とりあえず直す部分の末尾にreturn true;つけてメソッド抽出してから考えよう。