巧用 .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 中关于「合并运算符」这篇参考文档。

你可能感兴趣的:(.net)