我正在尝试将许多类似的方法组合成一个通用的方法。我有几个方法可以返回查询字符串的值,如果查询字符串不存在或格式不正确,则返回 null。如果所有类型都是本机为空的,那么这就很容易了,但是对于整数和日期,我必须使用可为空的泛型类型。
这是我现在拥有的。但是,如果一个数值无效,它将返回一个0,不幸的是,在我的场景中这是一个有效的值。有人能帮帮我吗?谢谢!
public static T GetQueryString<T>(string key) where T : IConvertible
{
T result = default(T);
if (String.IsNullOrEmpty(HttpContext.Current.Request.QueryString[key]) == false)
{
string value = HttpContext.Current.Request.QueryString[key];
try
{
result = (T)Convert.ChangeType(value, typeof(T));
}
catch
{
//Could not convert. Pass back default value...
result = default(T);
}
}
return result;
}