方法参数 Params

params,ref,out都是方法参数

首先类似这样的,传递的参数args添加了params修饰

public void OpenWindow(params object[] args){
int id=args[0];
Hashtable tab=(Hashtable)args[1];
}

public void Init(){
List<ItemInfo> itemList=XUIManager.instance.getInfo<ItemInfo>();
OpenWindow(itemList)
}

使用

params

关键字可以指定采用

数目可变的参数

的方法参数,可以发送参数声明中所指定类型的逗号分隔参数列表或指定类型的参数数组,还可以不发送参数。
再或者:
public static void UserParame(params int[] list){
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}
public static void UseParams2(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}

static void Main()
{
// You can send a comma-separated list of arguments of the
// specified type.
UseParams(1, 2, 3, 4);
UseParams2(1, ‘a‘, "test");

// A params parameter accepts zero or more arguments.
// The following calling statement displays only a blank line.
UseParams2();

// An array argument can be passed, as long as the array
// type matches the parameter type of the method being called.
int[] myIntArray = { 5, 6, 7, 8, 9 };
UseParams(myIntArray);

object[] myObjArray = { 2, ‘b‘, "test", "again" };
UseParams2(myObjArray);

// The following call causes a compiler error because the object
// array cannot be converted into an integer array.
//UseParams(myObjArray);

// The following call does not cause an error, but the entire
// integer array becomes the first element of the params array.
UseParams2(myIntArray);
}
}
/*
Output:
1 2 3 4
1 a test

5 6 7 8 9
2 b test again
System.Int32[]
*/

方法参数 Params

时间: 2024-08-24 03:14:49

方法参数 Params的相关文章

方法参数(params,ref,out)

params 使用该关键字可以指定采用数目可变的参数的方法参数,可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组,还可以不发送参数,如果未发送任何参数,则params列表的长度为0 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字 public class MyClass { public static void UseParams(params int[] list) { for (int i = 0; i < l

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

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

C# 参考之方法参数关键字:params、ref及out

如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值.可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.通过使用方法参数关键字,可以更改这种行为. params params 关键字可以指定在参数数目可变处采用参数的方法参数. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例: 字面意思比较难懂,所以看示例很有用. using System; class App { public stati

Scala正则和抽取器:解析方法参数

在<正则表达式基础知识>中概括了正则表达式的基础知识, 本文讲解如何使用正则表达式解析方法参数,从而可以根据 DAO 自动生成 Service. 在做 Java 项目时,常常要根据 DAO 生成 Service , 而 Service 有时是简单的调用 DAO 方法.比如根据 public CreativeDO findByCreativeId(Long creativeId)  生成如下代码: public CreativeDO findByCreativeId(Long creativeI

重新学习C#系列-01.方法参数

在介绍之前先来看两个概念:形参和实参. 1.形参声明在方法的参数列表中,如下面代码中,x和y为形参. 2.实参是用于初始化形参的表达式或变量,如下面代码.5和Age为方法实参,5是表达式,Age是int类型的变量. int Age=10; MethodName(5,Age); 二.C#中方法参数可以分为:值参数.引用参数.输出参数和参数数组. 1.值参数:通过将实参的值复制到形参的方式把数据传递给方法.方法被调用时,系统如下操作:1)在栈中为形参分配空间:2)将实参的值复制给形参.如下. 注意:

js方法参数问题

大家都知道java是强类型语言,而js是弱类型语言,其实,它们之间的区别不止这一点,还有方法参数及调用问题,参看下例: js中:这里定义了一个query()方法 function query() { var blacklistNumber=$('#blacklistNumber').val(); var blacklistName=$('#blacklistName').val(); var blacklistSex = $('#blacklistSex').val(); queryObj.bl

C#关键字—方法参数

Printed From Microsoft.docs; 使用 params 关键字可以指定采用数目可变的参数的方法参数. 可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组. 还可以不发送参数. 如果未发送任何参数,则 params 列表的长度为零. 在方法声明中的 params 关键字之后不允许有任何其他参数,并且在方法声明中只允许有一个 params 关键字. public class MyClass { public static void UseParams(para

JQuery中$.ajax()方法参数详解

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项

C#中方法参数的类型

C#方法参数类型有三种: 根据传递方式不同分为值传递和引用传递 值传递的本质是在传递参数时是把实参里面存的值传递给方法的形参,方法中对形参改变数值不会影响原来实参里面的数据. 输出结果为0 引用类型传递的本质是:实参是引用类型存储的是地址值,传递时是将实参中的地址传递给形参,这个时候形参中存储的是地址值.而在方法中改变变量值的时候是引用地址中存储的数据,所以会改变原来实参变量的值.因为两个变量引用的是一个地址. 声明引用类型传递时,需在方法签名中使用ref关键字声明参数类型为引用传递,并且在调用