Visual C# 2010新特性之命名和可选参数与类型等价支持

1. 命名和可选参数

Visual C# 2010引入了命名和可选参数,经常使用SQL Server编写存储过程的开发人员对此应该比较熟 悉—命名参数和可选参数与存储过程的参数十分相似。

命名参数允许调用者通过提供参数的名称来为其赋值,这样参数的位置就不在重要了。可选参数允许 在定义时为某些参数赋值,在调用时可以忽略这些“可选的”参数。命名参数和可选参数可以应用在方法 、索引器、构造函数和委托。命名参数和可选参数与dynamic类型结合在一起使用,可以方便的访诸如 Office自动化API之类的COM API。

1.1 命名参数

命名参数的语法为:

参数名称1:参数值1,参数名称2:参数值2…

例如以下代码:

static void Main(string[] args)
{
  CreateUser (password:"adminpassword",name:"admin");
}

static void CreateUser(string name,  string password)
{
  Console.WriteLine("name:{0},password:{1}", name,  password);
}

可以看到由于在调用时使用了命名参数,参数的位置就不在重要了。

1.2. 可选参数

方法、构造函数、索引器和委托的定义可以指定其参数为必选的还是可选的,在调用时必须提供必选 参数,但是可以省略可选参数。

还可以使用System.Runtime.InteropServices.OptionalAttribute特性类定义可选参数,该类从1.0时 代就已经包含在基类库中了。

每一个可选参数的定义都包含默认值(默认值必须是常量),如果在调用时没有指定该参数,则使用 默认值。例如以下代码:

static void Main(string[] args)
{
  CreateUser ("admin","adminpassword",50);
}

/// <summary>
/// 创建用户
///  </summary>
/// <param name="name">用户名称</param>
/// <param  name="password">用户密码</param>
/// <param name="score">积分 </param>
/// <param name="isLocked">是否锁定</param>
static void  CreateUser(string name, string password,
  int score=20,bool isLocked=false)
{
  Console.WriteLine("name:{0},password:{1}", name, password);
}

时间: 2024-10-30 02:26:11

Visual C# 2010新特性之命名和可选参数与类型等价支持的相关文章

Visual C# 2010新特性之dynamic类型

在Visual C# 2010中引入了一种新的dynamic类型,该类型是一个静态的(static)类型,但是一个 dynamic类型的对象会绕过静态类型检查.在大多数情况下dynamic和object类型有些相似,但是在编译时 ,dynamic类型被假定为支持任何操作,也就是说dynamic类型的对象可以是一个Office对象,可以是一个 COM对象或者是DOM对象,而如果在运行时发现该对象不是期望的对象则会抛出一个运行时异常. 由于把一个对象定义为dynamic类型,因此在代码中编写任意调用

C# 2010命名和可选参数的新特性

1.命名参数允许调用者通过提供参数的名称来为其赋值,这样参数的位置就不在重要了.可选参数允许在定义时为某些参数赋值,在调用时可以忽略这些"可选的"参数.命名参数和可选参数可以应用在方法.索引器.构造函数和委托.命名参数和可选参数与dynamic类型结合在一起使用,可以方便的访诸如Office自动化API之类的COM API. 1.1 命名参数 命名参数的语法为: 参数名称1:参数值1,参数名称2:参数值2- 例如以下代码: 以下为引用的内容: static void Main(stri

《Windows 8 开发权威指南:HTML5 和JavaScript卷》——1.4 Visual Studio 2012新特性

1.4 Visual Studio 2012新特性 1.4.1 Windows Microsoft Design样式应用程序1.设计和构建Microsoft Design Style样式应用程序通过1.3节我们对Microsoft Design样式应用程序有了一个基本的了解. 使用默认项目模板构建Microsoft Design样式应用程序,这些模板为不同的Microsoft Design样式应用程序提供了文件.资源和结构. 使用 XAML 和 C+ +.C# 或 Visual Basic构建M

Visual Studio快速开发以及Visual Studio 2010新功能介绍_基础应用

1.快捷命令: 复制代码 代码如下: "devenv" 启动相应版本的 Visual Studio "Inetmgr" IIS 管理器,不用到管理里去找了,很快就可以显示 IIS管理了 2.集成开发环境(IDE) 复制代码 代码如下: vs2010 的 IDE 已经过重新设计,提高了可性读. 为了减少杂乱,不必要的行和渐变都已删除 安装Visual Studio 后第一次加载需要选择默认的集成开发环境 (IDE),根据项目选择,一般选Visual C#开发, 如果在

Office Word 2010新特性详解

在 Office Word 2010 中,更多新特性的加入,使得用户的办公效率得以很大程度的提升.Word 历来都作为 Office 的重要组件之一,其更多人性化的新功能的加入,不仅可以让用户制作出更加精美的文档,同时,也提供了更好的用户体验. 从整体特点上看,Word 2010 丰富了人性化功能体验,改进了用来创建专业品质文档的功能,为协同办公提供了更加简便的途径,同时,云存储使得用户可以随时随地访问到自己的文件.下面,就来具体介绍 Word 2010 中的新特性. Word 2010 的启动

ThinkPHP3.1新特性之命名范围的使用_php实例

ThinkPHP3.1的命名范围功能,给模型操作提供了一系列的(连贯操作)封装,让你更方便的查询和操作数据.下面我们就来具体了解下这一用法. 1.定义属性 要使用命名范围功能,主要涉及到模型类的_scope属性定义和scope连贯操作方法的使用.我们首先定义_scope属性: class NewsModel extends Model { protected $_scope = array( // 命名范围normal 'normal'=>array( 'where'=>array('stat

LINQ体验(1)——Visual Studio 2008新特性

一.写本系列的目的 我平时利用课余零碎时间来学习ASP.NET3.5.LINQ.Silverlight.ASP.NET 3.5 Extensions等新东西,通过笔记形式来记录自己所学的历程,也给大家一起 学习Visual Studio 2008 和 .NET 3.5提供一个平台,为保证此系列的完整性, 我打算先依次介绍一下C# 3.0新语言特性和改进,然后从一条一条LINQ语句分析 来贯穿LINQ的知识点.最后通过一个实例程序实战Linq to sql带来全新的编程 体验.此系列比较长,欢迎大

Excle 2010新特性详解

跟前一版本一样,作为 Microsoft Office 2010 产品中的一个重要组件,Excel 2010 较 Excel 2007 来说也有很多改进,但总体来说改变不大.下面来做详细介绍: 函数功能 Excel 2010 的函数功能在整体继承 Excel 2007 的基础上,更加充分考虑了兼容性问题,为了保证文件中包含的函数可以在 Excel 2007 以及更早版本中使用,在新的函数功能中添加了"兼容性"函数菜单.以方便用户的文档在不同版本中都能够正常使用. 兼容性函数 迷你图 &

asp.net C# 3.0 新特性 学习(二):匿名类型、扩展方法

这两天看了一下msdnwebcast上的visual studio 2008的系列课程,记录下所学的知识,以便加深记忆 1.匿名类型 顾名思义 匿名类型就是没有名字的类型.在C#3.0中允许我们在程序中声明一个临时的类型来存储数据,例如:    代码如下 复制代码 class Program      {          static void Main(string[] args)          {              //声明一个匿名对象,拥有 Name和Age 属性