【发布时间】:2010-10-13 12:00:18
【问题描述】:
看看这段代码:
System.Web.SessionState.HttpSessionState ss = HttpContext.Current.Session["pdfDocument"] ?? false;
if ((Boolean)ss)
{
Label1.Text = (String)Session["docName"];
}
基本上我想检查 HttpContext.Current.Session["pdfDocument"] 是否不为空,如果不强制转换为布尔值,则检查它的真假。
我试图避免嵌套 if 语句,并认为会有一种更优雅的方式来做到这一点。因此,我只对包含条件的答案感兴趣?运算符。
有什么建议吗?
【问题讨论】:
-
这确实是完全错误的,即使有可能,它也接近于不可读和不可预测的代码。说不,伙计。
-
我认为问题在于 HttpContext.Current.Session["pdfDocument"] 将返回类型对象而不是 System.Web.SessionState.HttpSessionState。对象 ss = HttpContext.Current.Session["pdfDocument"] ??假的;
-
System.Web.SessionState.HttpSessionState ss = ((HttpContext.Current.Session["pdfDocument"])!=null?((Convert.ToBoolen(HttpContext.Current.Session["pdfDocument"] ))?true:false):)
-
所以这里的一般要点是我试图做的只是错误的 - 坚持使用嵌套的 ifs?
-
我对获得 -2 票反对感到有点恼火。我的问题肯定是清晰简洁的吗?
标签: c# session session-variables ternary-operator conditional-operator