C#4.0新特性 可选命名参数

Code
    class Program
    {
        static void PrintStudents(int id = -1, string name = "*", int age = -1)
        {
            Console.WriteLine("the student is id:{0} name:{1} age:{2}", id, name, age);
        }
        static void Main(string[] args)
        {
            PrintStudents(name: "xland", id: 8);
            Console.ReadKey();
        }
    }

 

如果有方法的多态的话,匹配方式如下

以下函数输出6;也就是执行了第一个方法

Code
        static void test3(int x)
        {
            Console.WriteLine(x);
        }
        static void test3(int x, int y = 6)
        {
            Console.WriteLine(x);
            Console.WriteLine(y);
        }
        static void Main(string[] args)
        {
            test3(6);
            Console.ReadKey();
        }

如果有方法的重载的话

如下,输出 8 6 6 

这里与一般的重载有区别  需要注意

Code
        public class test4
        {
            public virtual void test5(int a = 6)
            {
                Console.WriteLine(a);
            }
        }
        public class test6 : test4
        {
            public override void test5(int a = 8)
            {
                Console.WriteLine(a);
            }
        }
        static void Main(string[] args)
        {
            test6 a = new test6();
            a.test5();
            test4 b = new test6();
            b.test5();
            test4 c = a as test4;
            c.test5();
            Console.ReadKey();
        }

 

给方法传递参数的值的时候,可以直接从另一个方法获取值

如下

Code
        static void test7(int c,int b)
        {
            Console.WriteLine(b);
        }
        static int test8()
        {
            return 8;
        }
        static void Main(string[] args)
        {
            test7(1,9);
            test7(1,b:test8());
            Console.ReadKey();
        }

时间: 2024-07-28 20:15:13

C#4.0新特性 可选命名参数的相关文章

谈谈C# 4.0新特性“缺省参数”的实现

转自 http://www.cnblogs.com/artech/archive/2011/01/12/optionalparameter.html   C#4.0关于缺省参数的新特性,相信大家都不会陌生.所谓缺省参数,顾名思义,就是在声明方法的某个参数的时候为之指定一个默认值,在调用该方法 的时候如果采用该默认值,你就无须指定该参数.和很多语言层面特性(语法糖)的实现一样,缺省参数也是编译器为我们玩的一个小花招.缺省参数最终体现为两 个特殊的自定义特性OptionalAttribute和Def

一起谈.NET技术,谈谈C# 4.0新特性“缺省参数”的实现

C#4.0关于缺省参数的新特性,相信大家都不会陌生.所谓缺省参数,顾名思义,就是在声明方法的某个参数的时候为之指定一个默认值,在调用该方法的时候如果采用该默认值,你就无须指定该参数.和很多语言层面特性(语法糖)的实现一样,缺省参数也是编译器为我们玩的一个小花招.缺省参数最终体现为两个特殊的自定义特性OptionalAttribute和DefaultParameterValueAttribute . 目录 一.缺省参数的用法 二.实现缺省参数的两个特性:OptionalAttribute和Defa

“.NET研究”谈谈C# 4.0新特性“缺省参数”的实现

C#4.0关于缺省参数的新特性,相信大家都不会陌生.所谓缺省参数,顾名思义,就是在声明方法的某个参数的时候为之指定一个默认值,在调用该方法的时候如果采用该默认值,你就无须指定该参数.和很多语言层面特性(语法糖)的实现一样,缺省参数也是编译器为我们玩的一个小花招.缺省参数最终体现为两个特殊的自定义特性OptionalAttribute和DefaultParameterValueAttribute . 目录 一.缺省参数的用法 二.实现缺省参数的两个特性:OptionalAttribute和Defa

MySQL · 8.0.0新特性 · 持久化全局参数修改

PS: 本文内容基于MySQL8.0.0版本,由于目前才Release了第一个开发版本,不排除后续行为会发生变化 相信很多朋友都有这样的体验,在实例启动的时候动态修改了某些配置,但是忘了修改配置文件,结果实例一重启修改就丢失了.或者对于诸如部署在云上的业务(例如RDS),通常用户是没有修改配置文件的权限的,这导致配置的设定不够灵活.从MySQL8.0开始,大家不用担心这个问题了,用户可以选择性的将配置进行持久化. 对应的Worklog: WL#8688 启用这个功能,使用特定的语法SET PER

MySQL5.0新特性教程 存储过程:第三讲

The New SQL Statements 新SQL语句 Variables 变量 在复合语句中声明变量的指令是DECLARE. (1) Example with two DECLARE statements 两个DECLARE语句的例子 WHILE ... END WHILE CREATE PROCEDURE p8 () BEGIN DECLARE a INT; DECLARE b INT; SET a = 5; SET b = 5; INSERT INTO t VALUES (a); SE

[WCF 4.0新特性] 路由服务[原理篇]

在一个典型的服务调用场景中,具有两个基本的角色,即服务的消费者和服务的提供者.从消息交换的角度讲前者一般是消息的最初发送者,而后者则是消息的最终接收者.在很多情况下,由于网络环境的局限,消息的最初发送者和最终接收者不能直接进行消息交换,这就需要一个辅助实现消息路由的中介服务,这就是我们接下来要介绍的路由服务. 目录 一.路由服务就是一个WCF服务       路由服务契约的定义       路由服务契约的定义 二.基于消息内容的路由策略       RoutingBehavior服务行为    

C# 3.0 新特性----扩展方法

转自 http://www.cnblogs.com/jiejie_peng/archive/2010/04/08/1707195.html C# 3.0 新特性----扩展方法 主要目的掌握对一个已经编译的类的方法的扩展 特别注意a. 扩展某个类时,新建的类要使用 public static 修饰,因为默认的类是 internal 访问修饰符b. 这个类要有文件作用域,即不能作为嵌套类使用c. 扩展方法要声明为静态的d. 扩展方法的第一个参数类型即是要扩展的类,且该参数前要加 this 关键字e

AngularJS 2.0新特性有哪些_AngularJS

AngularJS已然成为Web应用开发世界里最受欢迎的开源JavaScript框架.自成立以来,见证其成功的是惊人的经济增长以及团体的支持与采用--包括个人开发者.企业.社区. Angular已经变成一个构建复杂单页面应用的客户端MVW框架(Model-View-Whatever).它在应用测试和应用编写方面都扮演重要角色,同时简化了开发过程. Angular目前的版本为1.3,该版本稳定,并被谷歌(框架维护者)用于支持众多应用(据估计,在谷歌有超过1600个应用运行于Angular1.2或1

PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性

前言    今天突然想到PHP官方网站上一转,一眼就看到PHP5推出的通告.虽然以前看到过PHP5的预告,但还是仔细看了PHP 5/Zend Engine 2.0新特性一文,一股JAVA气息扑面而来...   特将该文试译出来,首发于CSDN网站,以飨读者. PHP 5/Zend Engine 2.0新特性徐唤春 译 sfwebsite@hotmail.comhttp://www.php.net/zend-engine-2.php 全新的对象模型PHP中的对象处理部分已完全重写,具有更佳的性能和