巧用 .NET 中的「合并运算符」获得 URL 中的参数_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 巧用 .NET 中的「合并运算符」获得 URL 中的参数

巧用 .NET 中的「合并运算符」获得 URL 中的参数

 2013/9/12 18:53:31  ABEL  博客园  我要评论(0)
  • 摘要:获取URL中的GET参数,无论用什么语言开发网站,几乎是必须会用到的代码。但获取URL参数经常需要注意一点就是要先判断是否有这个参数存在,如果存在则取出,如果不存在则用另一个值。这个运算称为「合并运算」,在JavaScript非常常见的||两个竖线,就是这个意思。今天无意中在ASP.NET也看到了「合并运算符」,与JavaScript不同的是,它在.NET中是用??两个问号表示的。于是马上就想到可以用在URL参数的获取上,大大精简了代码:protectedvoidPage_Load
  • 标签:.net net URL

获取 URL 中的 GET 参数,无论用什么语言开发网站,几乎是必须会用到的代码。但获取 URL 参数经常需要注意一点就是要先判断是否有这个参数存在,如果存在则取出,如果不存在则用另一个值。这个运算称为「合并运算」,在 JavaScript 非常常见的 || 两个竖线,就是这个意思。今天无意中在 ASP.NET 也看到了「合并运算符」,与 JavaScript 不同的是,它在 .NET 中是用 ?? 两个问号表示的。于是马上就想到可以用在 URL 参数的获取上,大大精简了代码:

protected void Page_Load(object sender, EventArgs e)
{
    string type = Request["type"] ?? "all"; // 取得类别,默认为全部
    string keyword = Request["s"] ?? "";    // 搜索关键字
}

再贴上以前代码做个对比:

private string type
{
    get
    {
        return string.IsNullOrEmpty(Request["type"])
            ? Request["type"]
            : "all";
    }
}

private string keyword
{
    get
    {
        return string.IsNullOrEmpty(Request["s"])
            ? Request["s"]
            : "";
    }
}

相比之下确实简洁了不少。

当然这只是个简单的例子,具体如何去完善,以及确保防 URL 中的非法参数等,还要看不同项目中再进行改进。更多资料可以看 MSDN 中关于「合并运算符」这篇参考文档。

发表评论
用户名: 匿名