一般来说,参数个数都是固定的,定义为集群类型的参数可以实现可变数目参数的目的,但是.NET提供了更灵活的机制来实现可变数目参数,这就是使用params修饰符

一般来说,参数个数都是固定的,定义为集群类型的参数可以实现可变数目参数的目的,但是.NET提供了更灵活的机制来实现可变数目参数,这就是使用params修饰符。可变数目参数的好处就是在某些情况下可以方便地对参数个数不确定情况的实现,例如计算任意数字的加权和,链接任意字符串为一个字符串等。看下例子:

public class Test2 

public static void Main() 

ShowName("小兵"); 
ShowName("小王", "小六"); 

public static void ShowName(params string[] names) 

foreach (string name in names) 

Console.WriteLine(name); 


}

注意: 
1、params修饰的参数必须为一维数组。 
2、params修饰的参数数组,可以为任何类型,只要设置数组类型为object就可以。 
3、params必须在参数列表的最后一个,并且只能使用一次。

c# 可变数目参数params实例的更多相关文章

  1. 可变数目参数----关键字params的使用

    如何定义和使用可变数目参数的方法,使用关键字params. 即其他语言的可变参数 Code public class App { static void Main() { //常规使用方法 Conso ...

  2. javascript arguments解释,实现可变长参数。

    在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一.可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西. 先来看看应用场景,使用 ...

  3. c#中可变参数params关键字学习

    引用 https://www.cnblogs.com/maowp/p/8134342.html 基础知识 1.概念 params 是C#开发语言中关键字, params主要的用处是在给函数传参数的时候 ...

  4. .NET框架- in ,out, ref , paras使用的代码总结 C#中in,out,ref的作用 C#需知--长度可变参数--Params C#中的 具名参数 和 可选参数 DEMO

    C#.net 提供的4个关键字,in,out,ref,paras开发中会经常用到,那么它们如何使用呢? 又有什么区别? 1 in in只用在委托和接口中: 例子: 1 2 3 4 5 6 7 8 9 ...

  5. C++反射机制:可变参数模板实现C++反射(使用C++11的新特性--可变模版参数,只根据类的名字(字符串)创建类的实例。在Nebula高性能网络框架中大量应用)

    1. 概要   本文描述一个通过C++可变参数模板实现C++反射机制的方法.该方法非常实用,在Nebula高性能网络框架中大量应用,实现了非常强大的动态加载动态创建功能.Nebula框架在码云的仓库地 ...

  6. 浅谈C#可变参数params

    前言 前几天在群里看到群友写了一个基础框架,其中设计到关于同一个词语可以添加多个近义词的一个场景.当时群友的设计是类似字典的设计,直接添加k-v的操作,本人看到后思考了一下觉得使用c#中的params ...

  7. Java 数组 可变长参数 实例

    可以把类型相同但个数可变的参数传递给方法,方法中的参数声明如下: typeName...parameterName (类型名...参数名) 在方法声明中,指定类型后紧跟着省略号...,只能给方法指定一 ...

  8. go实例—函数或方法的可变长参数

    支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数. 需要注意的是,可变长参数应该是函数定义的最右边的参数,即最后一个参数 package ...

  9. C# 中的三个高级参数 params

    params params 关键字可以指定采用数目可变的参数的方法参数. 可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组. 还可以不发送参数. 在方法声明中的 params 关键 ...

随机推荐

  1. SSH框架之Struts(4)——Struts查漏补缺BeanUtils在Struts1中

    在上篇博客SSH框架之Struts(3)--Struts的执行流程之核心方法,我们提到RequestProcessor中的processPopulate()是用来为为ActionForm 填充数据.它 ...

  2. EAS常用工具类

    package com.kingdee.eas.custom; import java.io.File; import java.io.FileNotFoundException; import ja ...

  3. Vue 组件通信(组件间通信)

    1.中央事件总线bus <!DOCTYPE html> <html lang="zh"> <head> <meta charset=&qu ...

  4. ANDROID颜色设置

    Android中的颜色设置   1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如: public static final class color { public static ...

  5. windows开了远程控制访问老提示密码账号不正确

    今天搞windows忽然遇到一件诡异的事情 今天想开一个远程控制,点吧点吧该做的事情做了,服务也开了,防火墙都直接关了,然后用另一台电脑访问,总是提示凭证(密码账户)不对,这账号信息我输的是百分之一百 ...

  6. Manual close is not allowed over a Spring managed SqlSession(转)

    最近用junit测试spring项目的时候,报错: Manual close is not allowed over a Spring managed SqlSession 意思是不允许手动关闭spr ...

  7. unity3d控制模型的运动

    这里就不多做解释了,直接上代码,只为了备忘. public class HeroMove : MonoBehaviour { private float speed;//人物行动速度 private ...

  8. ubuntu安装Skype 4.3

    Install Skype 4.3 Step 1: Remove previous version sudo apt-get remove skype skype-bin:i386 skype:i38 ...

  9. linux释放内存命令

    1.首先查看linux内存使用 #free -m 2.把内存数据同步到硬盘#sync 3.修改 /proc/sys/vm/drop_caches文件 #echo 3 > /proc/sys/vm ...

  10. object-c输出对象

    有时候在xcode里打断点很不准,看到对象总是nil,还是用打log比较靠谱: NSLog(@"obj info:%@",obj);