如何在没有类型转换的情况下将会话值转换为字符串

本文关键字:会话 转换 字符串 情况下 类型转换 | 更新日期: 2023-09-27 18:03:10

我希望session的值在ASP.NET中不需要类型转换和转换。

但是我想没有任何转换得到Session["username"]的值到临时变量
示例-正确的方法是:

string temp;
Session["username"] = "Joy";
temp = Session["username"].ToString();

如何在没有类型转换的情况下将会话值转换为字符串

由于Session是Object类型(因此您可以放入任何内容),如果您想要读取它,则需要将其强制转换为String。

这样做的首选方法是(因为它可能还不存在于会话中)

string temp = Session["username"] as String;
if (temp == null)
{
//Doesn't exist in Session yet, so create and add
}

会话将对象作为值保存,因此需要将对象强制转换为正确的类型以获得类型的强度。会话值可以为空,所以您需要检查。

string temp;
Session["username"]="Joy";
temp=Session["username"] as string;

object temp = Session["username"]; // temp is just a basic object.

另一个问题是,由于会话保存对象,值类型被"装箱"到对象中。
当你想对值类型进行大小写转换时,你不能使用"as"强制转换,所以:

int intTemp;
Session["num"]= 7; // int is boxed into an object
intTemp = (int)Session["num"]; // unboxed back to int
intTemp = Session["num"] as int; // cannot be done!!!

Please try this.

temp=Session["username"] as string;

由于session是一个对象,因此必须将其键入为首选类型。