Оптимизация в результате недостижимого кода - PullRequest
0 голосов
/ 30 августа 2010

я создал один флаг Method1HasExecuted, логика, которой я хотел достичь, заключается в том, что если этот флаг верный, мне нужно сделать эта функция rp = Spa.Modify (val); в противном случае верните rp как false. Для этого я сделал это

        if (Method1HasExecuted)
        {
            rp = Spa.Modify(val);//Save operation, this function also return boolean value
        }
        else rp = false;

Тогда для оптимизации я использовал троичный оператор и сделал вот так

return Method1HasExecuted ? Spa.ClientModify() : false;

Но, пройдя этот путь вниз, я увидел некоторый недоступный код, который уже был там, как этот

1.как сделать его достижимым или здесь использование троичного оператора не требуется?

2. После блока catch мы можем увидеть return retval; снизу, это то, что требуется, так как результат всей работы либо равен true, что будет выполнять операцию сохранения или означает ложное отображение сервера вниз, который уже есть в моей работе

для второго вопроса вся структура теперь такая

Ответы [ 3 ]

1 голос
/ 30 августа 2010

Вы перевели оператор if-else в троичный оператор, но также добавили оператор возврата. Проблема в том, что оператор return всегда будет возвращаться, поэтому, если у вас есть код ниже этого метода, он никогда не будет выполнен.

Вы можете оставить троичный оператор, только не возвращайте:

rp = Method1HasExecuted ? Spa.ClientModify() : false;

Тернарный оператор выдаст IL, очень похожий на оператор if-else, который вы использовали ранее. Это не будет существенно быстрее, поэтому используйте его только в том случае, если считаете, что это улучшает удобство сопровождения или читаемость кода.

1 голос
/ 30 августа 2010

На самом деле, вы должны сделать:

rp = Method1HasExecuted && Spa.ClientModify();
1 голос
/ 30 августа 2010

Ваша проблема в том, что вы используете ВОЗВРАТ ..

вы должны сделать:

rp = Method1HasExecuted ? Spa.ClientModify() : false;

, а остальные должны быть такими же... возврат просто вернется:)

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