为什么我需要在asp.net中类型转换Viewstate变量

本文关键字:类型转换 Viewstate 变量 net asp 为什么 | 更新日期: 2023-09-27 18:09:26

我是asp.net的初学者,我遇到过以下这些语句

表述
ViewState["clicks"] = 5;
2

声明

ViewState["clicks"] = (int)ViewState["clicks"] + 1;

我的疑问是,如果我能够直接分配int值…当我在viewstate变量中增加值时,为什么我需要进行类型转换?提前感谢.......

为什么我需要在asp.net中类型转换Viewstate变量

ViewState["clicks"]返回一个object。不能在Object上使用+ -算子(加法)。因此,您需要将对象强制转换为其实际类型int。然后编译。

右边先求值,然后赋值给ViewState。如果你把它分成多行,可能会更清楚:

int oldClicks = (int)ViewState["clicks"];
int newClicks = oldClicks + 1;
ViewState["clicks"] = newClicks;

因为ViewState[]将返回object类型的对象