我正在尝试将一些类似的方法合并成一个通用方法。 我有几个方法,它们返回查询字符串的值,如果该查询字符串不存在或格式不正确,则返回null。 如果所有类型都是本地可空的,那么这将非常容易,但是对于整数和日期,我必须使用可空泛型类型。
以下是我现在拥有的内容。 但是,如果数字值无效,它将传回0,而在我的场景中,这是一个有效值。 有人可以帮助我吗?谢谢!
以下是我现在拥有的内容。 但是,如果数字值无效,它将传回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;
}
ChangeType
失败时生成的异常,而他们的调用总是返回默认值。 - crush