У меня уже есть это:
public static object GetDBValue(object ObjectEvaluated)
{
if (ObjectEvaluated == null)
return DBNull.Value;
else
return ObjectEvaluated;
}
used like:
List<SqlParameter> Params = new List<SqlParameter>();
Params.Add(new SqlParameter("@EntityType", GetDBValue(EntityType)));
Теперь я хотел сохранить тот же интерфейс, но расширить его, чтобы использовать его со значением NULL
public static object GetDBValue(int? ObjectEvaluated)
{
if (ObjectEvaluated.HasValue)
return ObjectEvaluated.Value;
else
return DBNull.Value;
}
public static object GetDBValue(DateTime? ObjectEvaluated)
{...}
но я хочу только 1 функцию GetDBValue для обнуляемых значений. Как мне это сделать и сохранить вызов как есть? Это вообще возможно?
Я могу заставить его работать так:
public static object GetDBValue<T>(Nullable<T> ObjectEvaluated) where T : struct
{
if (ObjectEvaluated.HasValue)
return ObjectEvaluated.Value;
else
return DBNull.Value;
}
Но вызов меняется на:
Params.Add(new SqlParameter("@EntityID ", GetDBValue<int>(EntityID)));