Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在没有类型转换的情况下将会话值赋给字符串_C#_Asp.net_.net - Fatal编程技术网

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

C# 如何在没有类型转换的情况下将会话值赋给字符串,c#,asp.net,.net,C#,Asp.net,.net,我想将会话的值转换为字符串,而不需要在ASP.NET中进行类型转换和转换 但是我想在不进行任何转换的情况下,将Session[“username”]的值转换为temp变量。 示例-正确的方法是: string temp; Session["username"] = "Joy"; temp = Session["username"].ToString(); 会话将对象作为值保存,因此需要将对象强制转换为正确的类型以获得类型的强度。 会话值可以为null,因此需要进行检查 string temp;

我想将会话的值转换为字符串,而不需要在ASP.NET中进行类型转换和转换

但是我想在不进行任何转换的情况下,将Session[“username”]的值转换为temp变量。
示例-正确的方法是:

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

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

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!!!

由于会话是Object类型(所以您可以放入任何内容),如果您想读取它,您需要将其转换回String

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

请试试这个

temp=Session["username"] as string;

由于会话是一个对象,有必要将其键入首选类型。

使用值类型时,可以使用“As int?”如果使用
As
关键字将对象强制转换为int,则为true。但是,通过将
强制转换为
int?
(或
Nullable
),您仍然可以使用
作为
,这将安全地强制转换
null
int
int?
。因此,允许在不首先将其放入对象变量的情况下进行null检查。可为null的int不是int,那么为什么要将int强制转换为可为null的int呢?使用()强制转换来转换值类型。亲爱的,我知道session是对象,但我想知道我可以将session的值转换为字符串而不进行任何类型强制转换或转换。有没有可能
temp=Session["username"] as string;