读书人

请教一个泛型转换的有关问题

发布时间: 2013-11-23 10:52:51 作者: rapoo

请问一个泛型转换的问题
本帖最后由 wggfcusmq 于 2013-11-22 11:46:20 编辑

private static T GetParametersValue<T>(string paraname, object defaultvalue)
{
if (HttpContext.Current.Session == null)
{
DataTable dt_para = new SDERP.BLL.SysManage.Sys_Parameters().GetList("PID='" + paraname + "'");
if (dt_para.Rows.Count != 0)
HttpContext.Current.Session = dt_para.Rows;
else
HttpContext.Current.Session = defaultvalue;
}

if (typeof(T) == typeof(bool))
{
return (T)((object)(Convert.ToInt32(HttpContext.Current.Session.ToString()) == 1));
}
else
return (T)HttpContext.Current.Session[paraname];
}


我有上面这个方法,当T为int,HttpContext.Current.Session[paraname]的值为"100"时,语句return (T)HttpContext.Current.Session提示"指定的转换无效"的错误,请问这是什么原因呢?该怎么解决。
[解决办法]
HttpContext.Current.Session[paraname]这里面是字符串。
字符串不能强制转化成int。必须借助Convert.ToInt32()这一类的方法。

如果T是int型的话,HttpContext.Current.Session[paraname]应该存放整数100,这样就可以直接转了

读书人网 >C#

热点推荐