Joh*_*hnB 13 c# asp.net if-statement visual-studio
为什么我在使用Visual Studio 2010的C#中收到此警告?
"Unreachable expression code detected"
Run Code Online (Sandbox Code Playgroud)
从以下代码(DateTime.Now绿色波浪形下划线):
public DateTime StartDate
{
get
{
DateTime dt = (DateTime)ViewState["StartDate"];
return ((dt == null) ? DateTime.Now : dt);
}
}
Run Code Online (Sandbox Code Playgroud)
Jus*_*ner 38
因为DateTime结构永远不能为null.
如果您期望可能的空值,则必须使用可为空的DateTime结构.您也可以使用null-coalescing运算符而不是条件运算符:
public DateTime StartDate
{
get
{
DateTime? dt = (DateTime?)ViewState["StartDate"];
return dt ?? DateTime.Now;
}
}
Run Code Online (Sandbox Code Playgroud)
或者你可以做一个单行(如评论中所示):
public DateTime StartDate
{
get { return (DateTime)(ViewState["StartDate"] ?? DateTime.Now); }
}
Run Code Online (Sandbox Code Playgroud)