Как лучше проверить строковый параметр Request.QueryString для нуля? - PullRequest
8 голосов
/ 14 ноября 2011

Мне нужны объяснения .. Я использую C # .NET для веб-приложений, я всегда пишу:

 string val = Request.QueryString["foo"];

, а затем

if(!string.IsNullOrEmpty(val)) 

В чем разница:

string val = Request.QueryString["foo"];

Мне посоветовали сделать:

string val = Request.QueryString["foo"] as string;
if(!string.IsNullOrEmpty(val)) 

Какая разница?

Ответы [ 2 ]

7 голосов
/ 14 ноября 2011

Первое лучше:

string val = Request.QueryString["foo"];

Вторая версия возвращает null, если результат вызова не является строкой, но вы знаете, что всегда будет строкой, поскольку член QueryString имеет тип NameValueCollection. Индексатор определен для возврата string:

public class NameValueCollection : NameObjectCollectionBase
{
    // ...
    public string this[string name] { get; set; }
    // ...
}
3 голосов
/ 14 ноября 2011

as string является избыточным, поскольку Request.QueryString["foo"] уже является строкой.(Таким образом, нет никакой другой разницы, кроме того, что вторая заставляет вас выглядеть так, будто вы не знаете свои рамки ;-))

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