如何更好地检查Request.QueryString字符串参数为null?

The*_*ask 8 .net c# asp.net string

我需要解释..我将C#.NET用于Web应用程序,我总是这样写:

 string val = Request.QueryString["foo"];
Run Code Online (Sandbox Code Playgroud)

然后

if(!string.IsNullOrEmpty(val)) 
Run Code Online (Sandbox Code Playgroud)

有什么不同:

string val = Request.QueryString["foo"];
Run Code Online (Sandbox Code Playgroud)

我被建议做:

string val = Request.QueryString["foo"] as string;
if(!string.IsNullOrEmpty(val)) 
Run Code Online (Sandbox Code Playgroud)

有什么不同?

Mar*_*ers 7

第一个更好:

string val = Request.QueryString["foo"];
Run Code Online (Sandbox Code Playgroud)

null如果调用的结果不是字符串,则返回第二个版本,但是您知道它总是一个字符串,因为该QueryString成员具有类型NameValueCollection.索引器被定义为返回string:

public class NameValueCollection : NameObjectCollectionBase
{
    // ...
    public string this[string name] { get; set; }
    // ...
}
Run Code Online (Sandbox Code Playgroud)