Если и для логики цикла в C #, если ошибка, как пропустить следующий шаг - PullRequest
0 голосов
/ 18 октября 2011

enter image description here

У меня более 2 строк, одна из которых - электронная почта, а другая - группа, если обе они действительны, я должен выполнить push to server (). Я сравниваю строку, чтобы определить, является ли она электронной почтой или строкой, что делается до цикла for ().

В этой логике я хочу запускать код сервера sendto push только тогда, когда оба условия выполнены успешно. На входе будут и электронная почта, и группа. Если электронная почта верна, и если группа верна только тогда, должен быть выполнен сервер отправки на push. Если кто-то ошибается, это не должно быть выполнено. Я могу запустить только сервер отправки на push, я не могу сделать это один раз для электронной почты и один раз для группы, поэтому он у меня есть после выполнения электронной почты и группы. Если есть какая-либо ошибка в какой-либо одной группе или электронном письме, тогда я не должен выполнять сервер отправки на push, я должен пропустить его. как я могу это сделать

Ответы [ 4 ]

1 голос
/ 18 октября 2011
for()
{
    if(!email)
    {
        Alert();
    }
    else
    {
        EnterUserDetailsInTable();
    }

    if(!group)
    {
        Alert();
    }
    else
    {
        EnterGroupDetailsInTable();
    }

    if(email && group)
    {
        PushToServer();
    }
}
1 голос
/ 18 октября 2011

У вас есть несколько вариантов:

for(var something in stuff)
{
    if(something.condition)
    {
        // send to server
    }
}

Инвертирование условия, чтобы избежать вложения:

for(var something in stuff)
{
    if(!something.condition) continue;

    // send to server
}

Использование LINQ для ограничения результатов заранее:

for(var something in stuff.Where(s => s.condition))
{
    // send to server
}
0 голосов
/ 18 октября 2011

Не уверен, что я вас правильно понимаю, но если вы спрашиваете, как выполнить последнюю часть, только если оба «Правильных» были выполнены: добавьте

    bool flagEmail = false;
    bool flagGroup = false;

перед вашим кодом.И после каждого «Enter ...» добавляйте:

flag...=true;

и в конце:

    if(flagEmail && flagGroup) ...//Send to push server.
0 голосов
/ 18 октября 2011
forloop
{
    if ((condition1) && (condition2))
    {
       //sendtoserver
    }
}

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

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