C # либо вернуть false или ничего не делать - PullRequest
3 голосов
/ 25 января 2011

Мне интересно, есть ли способ не повторять одно и то же , если конструкция , а вместо этого вызывать StatusCheck () .Он не может вернуть истину, когда это удастся. Кто-нибудь знает лучшее название для этого вопроса?

bool Enable()
{
    if (!GetStatus(ref status)) { Trace.WriteLine("Error"); return false; }
    // do stuff

    if (!GetStatus(ref status)) { Trace.WriteLine("Error"); return false; }
    // do more stuff

    if (!GetStatus(ref status)) { Trace.WriteLine("Error"); return false; }
    // do even more stuff

    // 6 more times the above

    return true;
}

Ответы [ 11 ]

0 голосов
/ 25 января 2011
bool Enable()
{
    try {
    if (!newProc }
    // do stuff

    if (!newProc }
    // do more stuff

    if (!newProc }
    // do even more stuff

   // 6 more times the above

   return true;
   }
   catch {
       return false;
   }
}

public function newProc()
{
    if (!GetStatus(ref status)) { Trace.WriteLine("Error"); return false; }

    throw new Exception
}
...