我在if语句中有一个if语句。
如果第二个if语句中的条件返回false,我想转到第一个if 因为它会自动设置我的验证控件。
我希望你明白
if (page.isvalid() )
{
if (datetime.tryparse (date) == true)
{
// ok
}
else
{
//go to the other else
}
}
else
{
// want to go here
}
编辑:
重要的是我必须首先验证页面,因为在验证之后,我知道我可以从2个输入控件解析日期时间并检查第二个输入控件是否大于第一个。否则,如果日期无效,它会抛出异常。
答案 0 :(得分:9)
而不是DateTime.Parse(日期)使用
DateTime dt;
bool isParsed = DateTime.TryParse(date, out dt);
//if ( page.isvalid() && (datetime.parse (date) == true) )
if ( page.isvalid() && isParsed )
{
// ok
}
else
{
// want to go here
}
答案 1 :(得分:1)
取出它们,它应该是你正在寻找的。此外,在一切都好之后添加一个return语句。
if ( page.isvalid() )
{
if (datetime.parse (date) == true)
{
// ok
}
return;
}
// code here happens when it's not valid.
答案 2 :(得分:1)
我相信,这正是你想要的。
if (page.isvalid() && datetime.tryparse(date) == true)
{
// ok
}
else
{
// want to go here
}
目前尚不清楚'== true'是否必要;你可能会放弃这种情况。
答案 3 :(得分:0)
你想做什么是不可能的。有两种选择。一种是在if子句的顶部确定两个答案。这是其他海报告诉你要做的事情。另一个选择是这样的:
bool isvalid = true;
if ( page.isvalid() )
{
if (datetime.tryparse (date) == true)
{
// ok
}
else
{
isvalid = false;
}
}
else
{
isvalid = false;
}
if (isvalid == false)
{
//do whatever error handling you want
}
这将从您的else子句中提取错误处理代码,并将其放在两个代码路径都可以到达的地方。