[提问]如何对一个长达300行的函数做重构
函数例子,实际的长度有300多行,其中200多行是对参数以及各种运行状态做判断。
如果方法成功,返回0,否则返回各种错误状态。
List<int> GetErrorParamTypes() { return new List<int>(); } public int LongFun(int param1, int param2, int param3) { // 参数验证 if (param1 == 0 || param2 == 0 || param3 == 0) return -1; if (param1 == param2) return -2; foreach (var errorType in GetErrorParamTypes()) { if (errorType == param1) return -3; } if (param3 == 10) return -4; // 做一些数据操作 return 0; } public int LongFun2(int param1, int param2, int param3) { // 参数验证 if (param1 == 0 || param2 == 0 || param3 == 0) return -1; var ret = verify1(param1, param2); if (ret != 0) // 验证是否成功 return ret; ret = verify2(param3); if (ret != 0) return ret; // 做一些数据操作 return 0; } /// <summary> /// 验证分类1 /// </summary> int verify1(int param1, int param2) { if (param1 == param2) return -2; foreach (var errorType in GetErrorParamTypes()) { if (errorType == param1) return -3; } return 0; } /// <summary> /// 验证分类2 /// </summary> int verify2(int param3) { if (param3 == 10) return -4; return 0; }