检查会话是否为空
我想检查会话是空还是空,即这样的事情:
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"])