C# Int会话变量是否要递增?
会话变量是否可以是C# Int会话变量是否要递增?,c#,session,variables,session-variables,C#,Session,Variables,Session Variables,会话变量是否可以是int?我想增加Session[“pagesview”]+1每次加载页面时。尝试递增会话变量时出错 if (Session["PagesViewed"].ToString() == "2") { Session["PagesViewed"] = 0; } else { Session["PagesViewed"]++; } Session[“pagesview”]将只返回一个对象-这就是.ToString()调用工作的原因。您需要将其转换回int,在那里递
int
?我想增加Session[“pagesview”]+1代码>每次加载页面时。尝试递增会话变量时出错
if (Session["PagesViewed"].ToString() == "2")
{
Session["PagesViewed"] = 0;
}
else
{
Session["PagesViewed"]++;
}
Session[“pagesview”]
将只返回一个对象-这就是.ToString()
调用工作的原因。您需要将其转换回int,在那里递增,然后将其放回会话中。是的,可以。但是,++
只有在编译器知道对象是int时才起作用。它如何知道代码的其他部分没有偷偷地执行会话[“PagesViewed”]=“Ha”代码>
通过强制转换,您可以有效地告诉编译器您不会执行类似的操作:如果会话变量实际上不是int,您将得到一个运行时异常
int pagesViewed = (int)Session["PagesViewed"];
if (pagesViewed == 2)
{
pagesViewed = 0;
}
else
{
pagesViewed++;
}
Session["PagesViewed"] = pagesViewed;
您需要先测试会话
变量是否存在,然后才能使用它并分配给它
您可以按如下方式执行增量操作
Session["PagesViewed"] = ((int) Session["PagesViewed"]) + 1;
但是,如果会话[“PagesView”]
不存在,这将导致错误。增量之前的快速null
测试应该会解决这个问题
if (Session["PagesViewed"] != null)
Session["PagesViewed"] = ((int)Session["PagesViewed"]) + 1;
您会遇到哪些错误?您需要确保您不在Web场中。如果是,请确认您已共享会话。另外,有点离题,但谷歌分析为您做到了这一点,而且可能效率更高
基本上与((对象)会话[“pagesview”])+代码>且不合法。无法编译。您需要显式添加1
:会话[“PagesView”]=(int)会话[“PagesView”]+1
可能应该使用++
作为前缀,因为它首先将赋值作为后缀,因此值不会更改<代码>会话[“页面查看”]=++((int)会话[“页面查看”])代码>