我試圖重構這裏一些代碼,被其他人以前做的,因爲我覺得很不切實際 下面是一個例子轉換很多方法重載成一個通用的方法,設計問題
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