日期:2014-05-18  浏览次数:20733 次

session数值比较的问题
在vs中发现了两个错误:

1、session["test"]==""
可能非有意的引用比较;若要获取值比较,请将左边转换为类型“string”

2、session["test"]==false
运算符“==”无法应用于“object”和“bool”类型的操作数

而这些在asp中都是不会显示错误的,而到了asp.net中却出错,至于显示的错误提示我也不是很理解,大家帮忙看下。

------解决方案--------------------
session["test"]保存的是什么对象呢
asp的session不能保存对象 asp.net 的可以
要看你保存的是什么对象了
------解决方案--------------------
1、(string)session["test"]=="" 
2、(bool)session["test"]==false
------解决方案--------------------
比较之前先判断一下 if(session["test"]!=null)

------解决方案--------------------
同意三楼的说话,不过我加点东西。
session["test"]返回的是object类型,所以判断时要用是否等于null来判断是否为空。
你可以用convert.tostring(session["test"])转换为字符串,或用
convert.to***(session["test"])转换为别的类型。然后在比较。
就不会有问题了。

------解决方案--------------------
session["test"]是object类型的。object是不能直接和string或bool比较的。所以会有那些提示,要先进行类型转换。

而asp里面几乎是没有类型这个概念的,完全自由转换。C#是一门强类型语言。