C#中可选参数和具名参数的使用

具名参数 和 可选参数 是 C# 4.0 提出来的新特性

一,可选参数分为:部分可选、全部可选

1,声明

    public class Dogs
    {
        public string Name { get; set; }
        public string Age { get; set; }

        //1,name为必选参数,age为可选参数,如果有必选参数,那么可选参数必须定义在必选参数后
        //可选参数之后必然为可选参数
        //如果都是可选参数,那么可以放第一位
        public void Says(string name, int age = 22)
        {
            Console.WriteLine(name + "," + age);
        }

        //2,name和age都为可选参数
        public void Eat(string food= "骨头", int bowls = 4)
        {
            Console.WriteLine(food + "," + bowls);
        }
    }

2,调用

        static void Main(string[] args)
        {
            Dogs dog = new Dogs();
            dog.Says("小白");  //name传入实参,age使用默认值
            dog.Says("小白",1);  //name和age都穿入实参

            dog.Eat();  //不穿入实参,food和bowls都使用默认值
            dog.Eat("鱼");//food传入实参,bowls使用默认值
            dog.Eat("鱼",2);//food和bowls都使传入实参       

        //dog.Eat(2); //这样调用会报错,因为默认传入的为第一个参数,而第一个参数类型为String类型
       //想要传入第一个参数使用默认值,而第二个参数使用传入值就要使用具名参数

            //具名参数使用:food使用默认值,而bowls使用传入参数
            //使用具名参数的时候,参数的顺序可以和参数声明时候的顺序不一致
            dog.Eat(bowls: 3);  //food使用默认值,而bowls使用传入值
            dog.Eat(bowls: 2, food: "狗粮");

            Console.ReadLine();

        }

原文地址:https://www.cnblogs.com/hubbert123/p/10640025.html

时间: 2024-08-03 08:56:27

C#中可选参数和具名参数的使用的相关文章

C#可选参数与具名参数

可选参数 static void test1() { func1("A"); func1("B", 30); Console.ReadKey(); } static void func1(string name, int age = 20) { Console.WriteLine("Name: " + name + "\t Age: " + age); } 具名参数 static void test2() { func2(&q

Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)

使用spring的jdbcTemplate-----使用具名参数 在JDBC用法中,SQL参数是用占位符?表示,并且受到位置的限制,定位参数的问题在于,一旦参数的位置发生变化,必须改变参数的绑定,在Spring JDBC中,绑定SQL参数的另一种选择是使用具名参数,SQL具名参数是按照名称绑定,而不是位置绑定. 什么是具名参数? 具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代 具名参数只在 NamedP

Spring 具名参数NamedParameterJdbcTemplate

具名参数: 具名参数:SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代 我们之前一直是用JDBCTemplate  进行Sql语句的 拼写 , 但是 当 一个行中有 多个 占位符时,很容易 搞混哪个值 是 哪个值. 那我们可以使用具名参数. 如何使用具名参数? 1. 在 xml 文件中加入对具名参数的支持 注意具名参数只能 使用 constructor-arg  并且必须对 dataSource 赋值 <!-- 具名

Spring框架笔记(二十五)——NamedParameterJdbcTemplate与具名参数

在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定. 在 Spring JDBC 框架中, 绑定 SQL 参数的另一种选择是使用具名参数(named parameter). 那么什么是具名参数? 具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代 具名参数只在 NamedParameterJdbcTempl

C#中的 具名参数 和 可选参数

具名参数 和 可选参数 是 C# framework 4.0 出来的新特性. 一. 常规方法定义及调用 public void Demo1(string x, int y) { //do something... } public void Main() { //调用 Demo1("similar", 22); } 调用时,参数顺序(类型)必须与声明一致,且不可省略. 二. 可选参数的声明及调用 可选参数分为两种情况: 1. 部分参数可选:   2. 全部参数都是可选 //部分可选(x

Objective-C中可选参数的实现

Objective-C中可选参数的API也表多,例如: - (instancetype)initWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);<pre name="code" class="objc">- (instancetype)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id /*&

C#4.0 具名参数 和 可选参数

C# 4.0中的可缺省参数 C# 4.0现在对方法,构造器,以及索引器支持使用可缺省的参数(注:VB支持可缺省参数可是有年头了). 当参数的默认值作为声明的一部分被指定的时候,参数就是可缺省的.例如,下面这个方法接受2个参数,一个"category" 字符串参数,另一个"pageIndex"整数参数."pageIndex"参数有一个默认值 0,它因此是一个可缺省的参数: 当调用上面的方法时,我们可以显式地传递2个参数给它: 或者我们可以省略掉传递

c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)

 一.方法参数的类型----值类型和引用类型 当方法传递的参数是值类型时,变量的栈数据会完整地复制到目标参数中即实参和形参中的数据相同但存放在内存的不同位置.所以,在目标方法中对形参所做的更改不会对调用者的初始变量产生任何影响. 当方法传递的参数是引用类型是,只是将变量的引用复制到目标参数中,实参和形参的引用指向内存中的同一位置.所以,在目标方法中对形参所做的更改会影响调用者的初始变量. 二.一些特殊的方法参数 1.引用参数---ref (使值类型的变量做方法参数时也可以传引用) 一些数据类型(

可选参数、命名参数、.NET的特殊类型、特性

1.可选参数和命名参数    1.1可选参数        语法:            [修饰符] 返回类型 方法名(必选参数n,可选参数n)        注意:            1.必选参数可以不存在,也可以有多个:可选参数可以有1个或多个            2.可选参数必须放在必选参数之后            3.可选参数在定义时需要赋初始值            4.可选参数之间也需要使用,进行分隔            5.调用可选参数时,不能跨参数赋值    1.2命名