`

C# 可选参数和命名参数

    博客分类:
  • C#
阅读更多

 

不说废话,直接上代码

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArgsDemo
{
    /// <summary>
    /// 可选参数和命名参数
    /// </summary>
    class TestArgs
    {
        static void Main(string[] args)
        {
            new TestArgs().Run();
        }

        private void Run()
        {
            Display(6);                 // 调用有 1 个参数的方法
            Display(a: 99);             // 调用有 1 个参数的方法
            Display(aaaa: 99);          // 调用有 2 个参数的方法,命名参数 aaaa 限制,
            Display(6, 8);              // 调用有 2 个参数的方法
            Display(6, 8, 10);          // 调用有 3 个参数的方法
            Display(6, b: 9);           // 调用有 2 个参数的方法,选择最贴近的
            Display(6, c: 10);          // 调用有 3 个参数的方法,命名参数 c 限制
            Display(6, c: 12, b: 8);    // 调用有 3 个参数的方法
            // 方法中 a 为必选参数,位置不能改变
            Display(c: 12, a: 8, b: 10);    // 调用有 3 个参数的方法
            // 命名参数可按照不同顺序传递实参
            Console.ReadKey(true);
        }

        public void Display(int a)
        {
            Console.WriteLine("调用有 1 个参数的方法!");
            Console.WriteLine("a = {0}", a);
            Console.WriteLine();
        }

        /// <summary>
        /// </summary>
        /// <param name="aaaa">可选参数</param>
        /// <param name="b">可选参数</param>
        public void Display(int aaaa = 99, double b = 2) 
        {
            Console.WriteLine("调用有 2 个参数的方法!");
            Console.WriteLine("a = {0}, b = {1}", aaaa, b);
            Console.WriteLine();
        }

        /// <summary>
        /// </summary>
        /// <param name="a">必选参数</param>
        /// <param name="b">可选参数</param>
        /// <param name="c">可选参数</param>
        public void Display(int a, double b = 2, int c = 6) 
        {
            Console.WriteLine("调用有 3 个参数的方法!");
            Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
            Console.WriteLine();
        }
    }
}

 

 

结果:

 

 

  • 大小: 14.1 KB
0
1
分享到:
评论

相关推荐

    c# 可选参数、命名参数

    重新指定分配默认值的参数时,可以显式地为指定参数名称赋值,隐式指定的时候,是根据方法参数的顺序,靠c#编译器的推断。 代码示例: 代码如下: void M(int x=9,string s=”a”,DateTime dt = default(DateTime)) {...

    深入C# 4.0 新特性dynamic、可选参数、命名参数的详细介绍

    本篇文章是对C# 4.0 新特性dynamic、可选参数、命名参数进行了详细的分析介绍,需要的朋友参考下

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    9.1 可选参数和命名参数 9.1.1 规则和原则 9.1.2 DefaultParameterValueAttribute和OptionalAttribute 9.2 隐式类型的局部变量 9.3 以传引用的方式向方法传递参数 9.4 向方法传递可变数量的参数 9.5 参数和...

    Visual C# 2010程序设计教程(教程PPT+源代码)

    2.6.3 命名参数和可选参数 2.7 本章小结 2.8 上机练习 2.9 习题 第3章 程序流程控制 3.1 选择结构程序设计 3.1.1 if语句 3.1.2 switch语句 3.2 循环结构程序设计 3.2.1 for语句 3.2.2 for each语句 3.2.3 while语句...

    C#本质论(第3版)

    4.8 可选参数 4.9 用异常实现基本错误处理 4.9.1 捕捉错误 4.9.2 使用throw语句报告错误 4.10 小结 第5章 类 5.1 类的定义和实例化 5.2 实例字段 5.2.1 实例字段的声明 5.2.2 实例字段的访问 5.3 实例...

    在一小时内学会 C#(txt版本)

    命名空间的概念和 C++ 完全一样,但我们在 C# 中比在 C++ 中更加频繁的使用命名空间。你可以用点(.)定界符访问命名空间中的类。上面的 Hello World 程序中,MyNameSpace 是其命名空间。 现在思考当你要从其他命名...

    C#4.0新特性介绍

    o 可选参数 o 命名的和可选的实参 o 重载解析 • 互操作特性 o 动态引入 o 无PIA的编译 o ref 省略ref o 已知问题 变性 o 协变性 o 逆变性 o 限制 COM Example COM示例 Relationship with Visual Basic...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    4.8 可选参数 126 4.9 用异常实现基本错误处理 129 4.9.1 捕捉错误 130 4.9.2 使用throw语句报告错误 136 4.10 小结 138 第5章 类 139 5.1 类的定义和实例化 141 5.2 实例字段 144 ...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    3.4.1 定义可选参数 58 3.4.2 传递命名参数 58 3.4.3 消除可选参数和命名参数的歧义 59 第3章快速参考 63 第4章 使用决策语句 65 4.1 声明布尔变量 65 4.2 使用布尔操作符 66 4.2.1 理解相等和关系操作符 66 ...

    微软C#语言规范,C#语言教程中文版

    3.8 命名空间和类型名称 70 3.8.1 完全限定名 72 3.9 自动内存管理 73 3.10 执行顺序 75 4. 类型 77 4.1 值类型 77 4.1.1 System.ValueType 类型 78 4.1.2 默认构造函数 78 4.1.3 结构类型 79 4.1.4 简单类型 79 ...

    c#学习笔记.txt

    可选的形参表指定委托的参数,而返回类型则指示委托的返回类型。如果下面两个条件都为真,则方法和委托类型是兼容的:(兼容的概念就是可以用此声明的委托对方法进行委托). 1它们具有相同的参数数目,并且类型相同,...

    CLR.via.C#.(中文第3版)(自制详细书签)

    9.1 可选参数和命名参数 9.1.1 规则和原则 9.1.2 DefaultParameterValueAttribute和OptionalAttribute 9.2 隐式类型的局部变量 9.3 以传引用的方式向方法传递参数 9.4 向方法传递可变数量的参数 9.5 参数和...

    C#实训教程

    很好的C#培训教程,适合初学者使用 目 录 1 .NET体系结构 7 1.1 什么是.NET Framwork? 7 1.2 .NET Framework的内容 7 1.3 如何用.NET Framework编写应用程序 8 1.4 MSIL和JIT 8 1.5 程序集 9 1.6 托管代码 9 1.7 ...

    C#语言规范(2.0,3.0,4.0合集)

    3.8 命名空间和类型名称 70 3.8.1 完全限定名 72 3.9 自动内存管理 73 3.10 执行顺序 75 4. 类型 77 4.1 值类型 77 4.1.1 System.ValueType 类型 78 4.1.2 默认构造函数 78 4.1.3 结构类型 79 4.1.4 简单类型 79 ...

    C#教程(语言规范)

    3.8 命名空间和类型名称 64 目录 3.8.1 完全限定名 66 3.9 自动内存管理 ... 66 3.10 执行顺序 69 4. 类型 ... 71 4.1 值类型 . 71 4.1.1 System.ValueType 类型 ... 72 4.1.2 默认构造函数... 72 4.1.3 ...

    c#支付宝标准双接口实现

    功能:除去数组中的空值和签名参数并以字母a到z的顺序排序 输入:SortedDictionary, string&gt; dicArrayPre 过滤前的参数组 输出:Dictionary, string&gt; 去掉空值与签名参数后的新签名参数组 public static string ...

    visual C# 2010

    通过额外的命名参数和可选参数,动态类型,索引属性和可选ref修改器,访问COM接口包括Office Automation API的能力被大幅加强。 类型等价支持(Type Equivalence Support) 相比从主互操作程序集(Primary ...

Global site tag (gtag.js) - Google Analytics