我的VS2005网络应用程序在过去两年中运行良好。但今天它突然开始抛出Invalid Cast的例外。
我的代码是:
int DistID = (int) this.Session["DISTRIBUTOR_ID"];
这条线工作了两年多。
但现在它突然开始抛出无效演员的异常。我检查了调试模式
this.Session["DISTRIBUTOR_ID"]
的有效int值为1234。
我通过将代码更改为:
来解决问题int DistID = Convert.ToInt32(this.Session["DISTRIBUTOR_ID"]);
但是我的老板问我为什么突然发生了这个错误。
有人可以回答这个问题吗?
答案 0 :(得分:4)
Convert.ToInt32()函数在内部调用解析函数,但是第一个实现是使用装箱和拆箱。 会话中的值在分配时应为整数类型。