Что лучше, если "заявление" использовать в C # - PullRequest
0 голосов
/ 17 января 2012

Оба эти метода работают, однако, какой метод лучше использовать из следующих:

PlaceHolder PH = ctl.PlaceHoldNu == 1 ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1") : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);

Или

           PlaceHolder PH;
                    if (ctl.PlaceHoldNu == 1)
                        PH = (PlaceHolder)Page.Master.FindControl("PlaceHolder1");
                    else
                        PH = (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);

Ответы [ 5 ]

6 голосов
/ 17 января 2012

Другое решение будет:

PlaceHolder PH = ctl.PlaceHoldNu == 1
    ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1") 
    : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);

В этом решении используется минимум строк, но поддерживается удобочитаемость.

4 голосов
/ 17 января 2012

Это вопрос вкуса.Однако, если они получатся слишком длинными, я бы предпочел второе.Но до того, как это произойдет, я думаю, что это выглядит хорошо:

PlaceHolder PH =
    ctl.PlaceHoldNu == 1
    ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1")
    : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);
0 голосов
/ 17 января 2012

Обычно я использую условный оператор только в назначениях (как вы сделали), но только тогда, когда они просты и удобны для чтения.

Длина ваших заданий заставит меня отдать предпочтение второму по удобочитаемости.

По существу, любой из них легче всего анализировать, если вы предполагаете, что никогда раньше не просматривали код.

0 голосов
/ 17 января 2012

В этом случае мне нравится первый, так как я чувствую, что он более читабелен и лаконичен.

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

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

0 голосов
/ 17 января 2012

Лучшим является тот, который вы предпочитаете использовать.

Они будут компилироваться до одного и того же, так что это зависит от контекста.Какой из них делает цель того, что вы пытаетесь сделать, более ясной?

...