Лучший синтаксис для оператора возврата в методе, который извлекает строку запроса - PullRequest
1 голос
/ 17 августа 2011

Я использую этот простой метод для извлечения строки запроса со страницы, возвращающей Int.В случае, если не может быть найден действительный идентификатор, я хотел бы вернуть значение по умолчанию int 0.

Я хотел бы узнать, есть ли лучший способ написать этот метод, в деталях:

  • Было бы лучше использовать только один оператор return вместо двух?Если да, каков наилучший способ сделать это?
  • Должен ли я выполнять какие-либо другие проверки при извлечении строки запроса?

Спасибо, что уделили нам время.

protected int GetPageIndex()
{
    int output;
    bool result = Int32.TryParse(Request.QueryString["page"], out output);
    if(result)
        return output;
    return output = 0; // Return Default value
}

Ответы [ 5 ]

5 голосов
/ 17 августа 2011

Просто инициализируйте его, прежде чем пытаться его проанализировать ... В любом случае, Int32.TryParse устанавливает значение 0, если преобразование не выполнено ... :) http://msdn.microsoft.com/en-us/library/f02979c7.aspx

protected int GetPageIndex()
    {
        int output = 0;
        Int32.TryParse(Request.QueryString["page"], out output);
        return output;
    }
3 голосов
/ 17 августа 2011

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

protected int GetPageIndex()
{
    int output = 0;
    int.TryParse(Request.QueryString["page"], out output);
    return output;
}
1 голос
/ 17 августа 2011

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

protected int GetPageIndex()
{
    int output;
    return Int32.TryParse( Request.QueryString[ "page" ], out output ) ? output : 0;
}
0 голосов
/ 17 августа 2011
int output;
return Int32.TryParse(Request.QueryString["page"], out output) ? output : 0;
0 голосов
/ 17 августа 2011

Я бы пошел с

protected int GetPageIndex()
{
    int output = 0;
    Int32.TryParse(Request.QueryString["page"], out output);
    return output; 
}
...