返回之前检查会话?

时间:2010-09-08 04:19:42

标签: c# asp.net

大家好我在实用程序类中有一个函数,它返回当前会话用户ID。 它抛出对象引用未设置为对象的实例?如何检查它是否为null&删除此错误?

public static string GetSessionUserID
{
    get
    {
        string userID = "";
        if (System.Web.HttpContext.Current.Session["userID"].ToString() != null)
        {
            userID = System.Web.HttpContext.Current.Session["userID"].ToString();
        }
        if (userID == null)
        {
            throw new ApplicationException("UserID is null");
        }
        else
            return userID;
    }
}

2 个答案:

答案 0 :(得分:6)

object userID = System.Web.HttpContext.Current.Session["userID"];
if (userID == null)
{
    throw new ApplicationException("UserID is null");
}
return userID.ToString();

如果存储在会话中的对象实际上已经是字符串,则可以省略ToString。导致错误的原因很简单,就是您无法在空引用上调用ToString。这就是上述检查之前的原因。

答案 1 :(得分:0)

使用“try”而不是“if”

string userID = "";
try{
            userID = System.Web.HttpContext.Current.Session["userID"].ToString();
}
catch{
            throw new ApplicationException("UserID is null");
}
return userID;