zoukankan      html  css  js  c++  java
  • C# 4.0 中的可选参数

    C# 4.0 中的可选参数

    C# 4.0 现在支持使用可选参数的方法、 构造函数和索引器 (注: VB 有一段时间内支持可选参数)。

    默认值指定作为声明的一部分时,参数是可选的。  为例,下面的方法使用两个参数 — — 一个"类别"字符串参数和"pageIndex"整数参数。  "pageIndex"参数有默认值为 0,并且因此是一个可选的参数:

    调用上述方法时我们可以明确向其传递两个参数:

    或者,我们可以省略通过第二个可选参数 – 0 例默认值将传递的:

    请注意 VS 2010's Intellisense 指示时的参数是可选的以及它的默认值是显示语句完成时:


    命名的参数和 C# 4.0 中的可选参数

    C# 4.0 现在还支持"命名参数"的概念。  这使您可以显式命名的参数要传递到方法 – 而不是只按位置参数识别它。 

    为例,我可以编写显式确定第二个参数传递给 GetProductsByCategory 方法按名称 (使其使用情况稍微显式) 以下代码:

    要传递的到来非常有用的一种方法支持多个的可选参数,并且您想要指定哪些参数的命名的参数。  例如下面我们有一种方法使用两个可选参数中的 DoSomething

    我们可以使用命名的参数中的任何调用上述方法,下面的方法:

    是可选两个参数中只有一个 (或零) 参数指定位置然后例非指定的任何参数的默认值传递。


    ASP.NET MVC 2 和可选参数

    ASP.NET MVC 2 的输入的绑定支持给操作控制器类上的方法,我们现在可以利用的 VB 和 C# 的可选参数支持的一个很好的使用情况。

    为例,请考虑要将像"产品/浏览/饮料"或产品/浏览/沙漠的 url 映射到一个控制器操作方法的方案。  我们可以这样通过编写一个 URL 路由映射到一个方法 url 像这样的规则:

    然后我们才能还可以使用"页面"querystring 值表示浏览法显示的结果应该分页 –,那么应显示哪个页面的结果。  例如: /Products/Browse/Beverages 吗? 页面 = 2。

    ASP.NET MVC 1 你会通常通过添加"页"参数到操作方法处理这种情况下,并使其 可为空值 int (这意味着如果"页面"querystring 值不存在,则将为空)。  你可以写代码喜欢下面,将 可为空值 int 转换为 int – 并为其分配一个默认值,如果它不存在 querystring 然后:

    ASP.NET MVC 2 您现在可以利用 VB 和 C# 中,表示此行为,更简明、 清晰的可选参数支持。  只需将操作方法参数声明为一个可选的参数,默认值为:

    C#

    VB

    "页面"值是否存在于 querystring (例如 /Products/Browse/Beverages 吗? 页面 = 22) 然后它将传递给操作方法为一个整数。  如果"页面"的值不是在查询字符串 (例如 /Products/Browse/Beverages) 将到操作方法传递,默认值为 0。  这使代码更简明、 易读。


    摘要

    有大量的 C# 和 VB 与 VS 2010 来出色的新语言功能。  上述的两个功能 (可选参数和命名的参数),不过其中两人。  有关更多星期和未来几个月中的博客,我是会的。

    如果要寻找一本好书,总结了 C# (包括 C# 4.0) 中的所有语言功能,也提供了很好的摘要,核心的.net 类库您可能还希望签出最新公布的 C# 4.0 a Nutshell 中 书,O'Reilly 从:

    确实很好填料在一个轻松地搜索和查找样本格式的内容很多的工作。

  • 相关阅读:
    Python面试题之装饰器漫谈
    Python入门之面向对象的__init__和__new__方法
    Python入门之PyCharm中目录directory与包package的区别
    Python中模块(Module)和包(Package)的区别
    详细讲解提高数据库查询效率的实用方法、外键关于性能
    kaptcha验证码插件的使用
    在 Web 项目中应用 Apache Shiro
    SessionFactory、HibernateTemplate、HibernateDaoSupport之间的关系说明
    jquery 绑定省份和城市
    jQuery事件之鼠标事件
  • 原文地址:https://www.cnblogs.com/dudu837/p/1888055.html
Copyright © 2011-2022 走看看