【问题标题】:how can I check whether the session is exist or with empty value or null in .net c#如何在 .net c# 中检查会话是否存在或具有空值或 null
【发布时间】:2011-08-31 14:03:48
【问题描述】:

有谁知道如何在 .net c# web-applications 中检查会话是否为空或 null?

例子:

我有以下代码:

 ixCardType.SelectedValue = Session["ixCardType"].ToString();

对于 Session["ixCardType"] 总是显示错误(错误消息:对象引用未设置为对象的实例)。无论如何,我可以在转到 .ToString() 之前检查会话??

【问题讨论】:

  • 您是否尝试过先将 Session[item] 与 null 进行比较?
  • @Anthony:这个问题甚至存在,这很可怕。 -1 并投票关闭。

标签: c# .net web-applications


【解决方案1】:

像“如果”这样简单的东西应该可以工作。

 if(Session["ixCardType"] != null)    
     ixCardType.SelectedValue = Session["ixCardType"].ToString();

如果会话值为空时你想要空字符串,或者类似这样:

ixCardType.SelectedValue = Session["ixCardType"] == null? "" : Session["ixCardType"].ToString();

【讨论】:

    【解决方案2】:

    您可以将结果分配给一个变量,并在调用 ToString() 之前测试它是否为空/空:

    var cardType = Session["ixCardType"];
    if (cardType != null)
    {
        ixCardType.SelectedValue = cardType.ToString();
    }
    

    【讨论】:

      【解决方案3】:

      使用as 运算符转换object,如果该值未能转换为所需的class 类型,或者它本身是null,则返回null

      string value = Session["ixCardType"] as string;
      
      if (String.IsNullOrEmpty(value))
      {
          // null or empty
      }
      

      【讨论】:

      • +1 for as,这是 C# 最酷的鲜为人知的特性之一
      猜你喜欢
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      相关资源
      最近更新 更多