如何在int类型的会话变量中处理null

时间:2011-02-25 21:42:05

标签: c# session null

如果session["Colindex"]为空。它抛出一个错误信息,说对象引用没有设置为null。

int colid =(int) Session["ColIndex"];

感谢任何帮助

3 个答案:

答案 0 :(得分:3)

使用C#?? null合并运算符:

int colid = (int)(Session["ColIndex"] ?? 0);

这会将colid设置为Session中的值,如果它为null,则设置为0。

答案 1 :(得分:2)

如果尚未创建Session["ColIndex"],则没有值。由于Session是一个引用变量,因此没有对堆上对象实例的引用,这就是您收到“对象引用未设置为对象实例”的原因错误。换句话说,Session变量从未被分配/创建。

在演示会话之前,您需要测试null:

if ( Session["ColIndex"] != null )
{
  int colid = (int)Session["ColIndex"];
  // do other stuff
}

答案 2 :(得分:1)

我不知道这是什么语言,但你可能需要在转换为int之前测试null。