0

在过去的两年里,我的 VS2005 Web 应用程序运行良好。但是今天它突然开始抛出 Invalid Cast 的异常。

我的代码是:

int DistID = (int) this.Session["DISTRIBUTOR_ID"];

这条线工作了两年多。

但现在它突然开始抛出无效演员表异常。我在调试模式下检查

this.Session["DISTRIBUTOR_ID"]

有效的 int 值为 1234。

我通过将代码更改为:

int DistID = Convert.ToInt32(this.Session["DISTRIBUTOR_ID"]);

但是我的老板问我为什么突然出现这个错误。

谁能回答这个问题?

4

1 回答 1

4

Convert.ToInt32() 函数在内部调用解析函数,但在第一个实现中,您使用的是装箱和拆箱。会话中的值在分配时应该是整数类型。

于 2012-04-16T06:56:13.843 回答