Считается ли выражение «если» методом? - PullRequest
49 голосов
/ 30 декабря 2011

Среди моих коллег возникла интересная дискуссия о том, считается ли утверждение "если" методом?Хотя к слову «if» добавляется оператор word, он по-прежнему ведет себя подобно простому методу невозвращаемого значения.

Например:

if(myValue) //myValue is the parameter passed in
{
    //Execute
}

Аналогичным образом метод может выполнить ту же операцию:

public void MyMethod(myValue)
{
    switch(myValue)
    {
        case true:
            //Logic
            break;
        case false:
            //Logic
            break;
    }
}

Правильно ли называть (рассматривать) оператор "if" простым предопределенным методом на языке программирования?

Ответы [ 14 ]

2 голосов
/ 30 декабря 2011

Если по методу мы понимаем блок кода, который можно вызвать, и поток управления автоматически возвращается к вызывающей стороне, когда метод заканчивается, тогда if s не являются методами.Поток управления не возвращает нигде после выполнения if.

2 голосов
/ 30 декабря 2011

Если бы это было классифицировано как метод, тогда, конечно, мы бы оказались в сферах ОО, однако мы не являемся, поэтому я предполагаю, что мы о функции.Конечно, функция / подпрограмма может быть написана для воспроизведения поведения if (я думаю, что это на самом деле функция в lisp / схеме).

Я бы не классифицировал ее как функцию или даже подпрограмму, просто управляюпоток.

0 голосов
/ 30 декабря 2011

Обратите внимание, что в вашем примере вы заменили один «оператор выбора» (спецификация C # 4, раздел 8.7), оператор if (раздел 8.7.1) другим, оператор switch (раздел 8.7. 2). Вы также реорганизовали оператор выбора в отдельный метод. Однако вы не заменили использование оператора выбора на метод.

Ответ на ваш вопрос «нет».

0 голосов
/ 30 декабря 2011

Нет.Вы не вернетесь назад, когда закончите с if.Это просто контрольное заявление.

...