大家好我在实用程序类中有一个函数,它返回当前会话用户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;
}
}
答案 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;