0
我有一個數據表,並且必須驗證其中的每個字段。我已經將此代碼重構爲以下代碼,但複雜度爲15(!!)我應該將字典的類型設置爲Key並將Func設置爲Value?我會很感激的一些想法重構驗證器的選擇代碼
private bool CheckField(DataRow dataRow, ValidationField validationField)
{
bool result = false;
if (validationField.Requiered)
{
if (validationField.Type == typeof (int))
{
result = this.CheckIntegerAndNotNull(dataRow[validationField.Name].ToString());
}
else if (validationField.Type == typeof (DateTime))
{
result = this.CheckDateTimeAndNotNull(dataRow[validationField.Name].ToString());
}
}
else
{
if (validationField.Type == typeof (int))
{
result = this.CheckIntegerOrNull(dataRow[validationField.Name].ToString());
}
else if (validationField.Type == typeof(DateTime))
{
result = this.CheckDateTimeOrNull(dataRow[validationField.Name].ToString());
}
else if (validationField.Type == typeof(string))
{
result = this.CheckStringOrNull(dataRow[validationField.Name].ToString(),
validationField.MaxLength.Value);
}
else if (validationField.Type == typeof(decimal))
{
result = this.CheckDecimalOrNull(dataRow[validationField.Name].ToString());
}
}
return result;
}
public class ValidationField
{
public Type Type { get; set; }
public string Name { get; set; }
public bool Requiered { get; set; }
public int? MaxLength { get; set; }
}
此問題似乎是題外話題,因爲它是關於審查工作代碼。嘗試http://codereview.stackexchange.com。 – CodeCaster
_「我應該做類似字典的字典作爲鍵和功能值?」 - 是的,你可以做到這一點。 – CodeCaster