检查会话是否为空

我想检查会话是空还是空,即这样的事情:

if(Session["emp_num"] != null) { if (!string.IsNullOrEmpty(Session["emp_num"].ToString())) { //The code } } 

要不就

  if(Session["emp_num"] != null) { // The code } 

因为有时我只检查:

  if (!string.IsNullOrEmpty(Session["emp_num"].ToString())) { //The code } 

我面临以下例外:

空引用exception

如果会话变量emp_num将存储字符串,请使用此选项:

  if (!string.IsNullOrEmpty(Session["emp_num"] as string)) { //The code } 

如果它不存储字符串,而是存储其他类型,则应在访问该值之前检查null,如第二个示例所示。

 if (HttpContext.Current.Session["emp_num"] != null) { // code if session is not null } 
  • 如果以上都失败了。

在尝试将其转换为字符串之前,您需要检查Session["emp_num"]是否为null ,否则您将获得空引用exception。

我会用你的第一个例子 – 但你可以让它更“优雅”。

有几种方法,但想到的是:

 if (Session["emp_num"] is string) { } 

要么

 if (!string.IsNullOrEmpty(Session["emp_num"] as string)) { } 

如果变量不存在或不是字符串,则返回null。

您应首先检查Session["emp_num"]是否存在Session["emp_num"]

您可以询问会话对象其索引器是否具有emp_num值或使用string.IsNullOrEmpty(Session["emp_num"])