我试图重构这里一些代码,被其他人以前做的,因为我觉得很不切实际 下面是一个例子转换很多方法重载成一个通用的方法,设计问题
protected void SetParameterValue(SqlParameter parameter, string parameterValue, bool isNullable)
{
if ((null == parameterValue || parameterValue == NULL_STRING) && isNullable)
parameter.Value = DBNull.Value;
else parameter.Value = parameterValue;
}
protected void SetParameterValue(SqlParameter parameter, int parameterValue, bool isNullable)
{
if (parameterValue == NULL_INT && isNullable)
parameter.Value = DBNull.Value;
else parameter.Value = parameterValue;
}
protected void SetParameterValue(SqlParameter parameter, Int64 parameterValue, bool isNullable)
{
if (parameterValue == NULL_LONG && isNullable)
parameter.Value = DBNull.Value;
else parameter.Value = parameterValue;
}
像那些,还有更多。现在我需要创建一个接受新类型的类型(目前还没有方法),并且决定也许我可以清理一下,做得更好。 我的想法是创建一个类似
protected void SetParameterValue<T>(SqlParameter parameter, T parameterValue, bool isNullable)
但是,我不知道什么是最好的方法,我将需要不同的方法做的一样好,我可以封装这个泛型方法里面是什么,什么。这值得么?或“很多方法”的方法是好的?通用的我会得到什么?谢谢!
@Alex有点极端 – msarchet 2010-11-24 15:50:44
由于Nullable类型现在可用,所以可以考虑删除那些NULL_INT,NULL_LONG等常量,而只是使用`int?`,`long?`作为数据类型。 – Heinzi 2010-11-24 15:52:39
问题是,NULL_INT等在很多地方,我想执行一些快速重构,使事情变得更好一些,而不必更改很多代码(并且有很多重新测试) – 2010-11-24 15:55:13