`

C#中可选参数和命名参数的定义及使用

    博客分类:
  • C#
 
阅读更多
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 可选参数和命名参数
{
    class Program
    {
        static void Main(string[] args)
        {
            (new Program()).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 个参数的方法
                                            // 命名参数可按照不同顺序传递实参
        }

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

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

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

 运行后结果如下:

分享到:
评论

相关推荐

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

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

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

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

    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 ...

    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 实例...

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

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

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

    3.4.3 消除可选参数和命名参数的歧义 59 第3章快速参考 63 第4章 使用决策语句 65 4.1 声明布尔变量 65 4.2 使用布尔操作符 66 4.2.1 理解相等和关系操作符 66 4.2.2 理解条件逻辑操作符 66 4.2.3 短路求值 ...

    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#学习笔记.txt

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

    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#语言规范,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 ...

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

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

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

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

    Visual C# 2005程序设计自学手册 随书源码第一部分(共三部)

    Visual C# 2005 程序设计自学手册 *****是随书源码光盘***** *****人民邮电出版社***** **长春明日科技组织编写** ...19.2.2 可选的部署功能 396 19.3 安装及卸载Windows程序 399 19.3.1 在本地计算机上安装 399...

    visual C# 2010

    不同接口和委托可通过使用新的in和out语言关键字被创建。.NET Framework也可对某些现有泛型接口和委托带来不同的支持,包括IEnumerable<(Of <(T>)>)接口和Func<(Of <(TResult>)>) 与 Action<(Of <(T>)>) 委托。 新的...

    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#语言规范(2.0,3.0,4.0合集)

    这个是C#语言规范2.0,3.0,4.0的合集,是关于 C# 语法的权威资料。它们包含该语言各个方面的详细信息,包括 Visual C# 产品文档未涉及的许多语法点。 4.0目录 1. 简介 1 1.1 Hello world 1 1.2 程序结构 2 1.3 ...

Global site tag (gtag.js) - Google Analytics