C#中params参数的用法!!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中params参数的用法!!!!相关的知识,希望对你有一定的参考价值。
假设有一个函数GetWord(),
string firstWord = GetWord("This is a dag.", 2);
假定第一个单词计数为1,则firstWord就被赋值字符串is.
意思就是通过GetWord中的第二个参数来确定FirstWord该取哪个单词。
这个GetWord函数要怎么写?需用到params参数。
高手帮帮忙,能编出来更好,给点思路也行
//而GetWord("This is a dag.", 1, 2);则返回"is a"
//GetWord("This is a dag.", 0, 2);返回"This a"
public string GetWord(string s,params int[] n)
string value="";
string[] str = s.split(" ");
foreach(int i in n)
if(i<str.Length)value+=str[i]+" ";
return value.Trim();
不知道是不是你想要的。。有问题可以HI我。 参考技术A params
我在数据访问时用过
public static int ExecuteNonQuery(string cmmdText, CommandType cmdType, params SqlParameter[] parameters)
参考技术B public string GetWord(string s,int n)
string[] str = s.split(" ");
return str[n-1];
参考技术C params 构造函数声明数组 而不知道数组长度 用的
在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
using System;
public class MyClass
public static void UseParams(params int[] list)
for (int i = 0 ; i < list.Length; i++)
Console.WriteLine(list[i]);
Console.WriteLine();
public static void UseParams2(params object[] list)
for (int i = 0 ; i < list.Length; i++)
Console.WriteLine(list[i]);
Console.WriteLine();
static void Main()
UseParams(1, 2, 3);
UseParams2(1, 'a', "test");
// An array of objects can also be passed, as long as
// the array type matches the method being called.
int[] myarray = new int[3] 10,11,12;
UseParams(myarray);
输出
1
2
3
1
a
test
10
11
12
(17)C#的params参数关键字
在C#里,如果要使用变长的参数,可以使用这个关键字。
使用 params
关键字可以指定采用数目可变的参数的方法参数。 参数类型必须是一维数组。
在方法声明中的 params
关键字之后不允许有任何其他参数,并且在方法声明中只允许有一个 params
关键字。
如果 params
参数的声明类型不是一维数组,则会发生编译器错误 CS0225。
使用 params
参数调用方法时,可以传入:
- 数组元素类型的参数的逗号分隔列表。
- 指定类型的参数的数组。
- 无参数。 如果未发送任何参数,则
params
列表的长度为零。
关于params 参数数组,需掌握以下几点:
一.参数数组必须是一维数组
二.不允许将params修饰符与ref和out修饰符组合起来使用
三.与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量
四.若实参是数组则按引用传递,若实参是变量或表达式则按值传递
五.形式为:方法修饰符 返回类型 方法名(params 类型[ ] 变量名)
六.params参数必须是参数表的最后一个参数
以上是关于C#中params参数的用法!!!!的主要内容,如果未能解决你的问题,请参考以下文章