оставить заявление - PullRequest
       17

оставить заявление

2 голосов
/ 21 декабря 2009

У меня есть оператор if внутри оператора if.

Если условие во втором операторе if возвращает false, я хочу перейти к первому другому потому что там он устанавливает мои элементы управления проверкой автоматически.

Надеюсь, вы понимаете

if (page.isvalid() )
{
    if (datetime.tryparse (date) == true)
    {
        // ok    
    } 
    else
    {
       //go to the other else
    }
}
else
{
    // want to go here
}

Редактировать:

Важно, чтобы я сначала проверил страницу, потому что после проверки я знаю, что могу проанализировать дату и время из двух элементов управления вводом и проверить, больше ли второй, чем первый. В противном случае выдается исключение, возможно, если дата недействительна.

Ответы [ 4 ]

9 голосов
/ 21 декабря 2009

вместо DateTime.Parse (date) используйте

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 голос
/ 21 декабря 2009

Я думаю, это именно то, что вы хотите.

if (page.isvalid() && datetime.tryparse(date) == true)
{        
    // ok
}
else
{
    // want to go here
}

Непонятно, нужно ли '== true'; Вы можете отказаться от этого условия.

1 голос
/ 21 декабря 2009

Убери остальных, и это должно быть то, что ты ищешь. Кроме того, добавьте оператор возврата после того, как все будет хорошо.

if ( page.isvalid() )
{
    if (datetime.parse (date) == true)
    {
        // ok    
    } 
    return;
}

// code here happens when it's not valid.
0 голосов
/ 21 декабря 2009

Именно то, что вы хотите сделать, невозможно. Есть два варианта. Один из них - определить оба ответа в верхней части предложения 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 и помещает его туда, куда могут добраться оба пути кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...