Есть ли однострочный оператор для возврата из функции, только если условие истинно? - PullRequest
1 голос
/ 12 мая 2019

В C # есть ли синтаксический сахар для выполнения следующих действий в одном выражении (в основном, условный возврат):

public SomeBaseType MyFunction()
{
    // Can the two statements below be combined into one?
    SomeBaseType something = SomeFunction();
    if ( something != null ) { return something; }
    // End of statements regarding this question.


    // Do lots of other statements...
    return somethingElseThatIsADerivedTypeThatDoesntMatter;
}

1 Ответ

6 голосов
/ 30 мая 2019

Нет, не существует «условного оператора возврата», который либо возвращает (основанный на условии), либо продолжается в методе, хотя я иногда тоже хотел его. Вы могли бы написать:

public SomeBaseType MyFunction()
{
    return SomeFunction() ?? LocalMethod();

    SomeBaseType LocalMethod()
    {  
        // Do lots of other statements...
        return somethingElseThatIsADerivedTypeThatDoesntMatter;
    }
}

... но это не совсем понятно.

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