首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问一下关于params的有关问题

2012-03-03 
请教一下关于params的问题public DataSet SP_Common(int iKey, params string[] paramsArr){。。。}调用时SP_

请教一下关于params的问题
public DataSet SP_Common(int iKey, params string[] paramsArr){。。。}

调用时SP_Common(iKey, this.ctrlCity.Value);说has some invalid arguments,我把声明params参数改成params object[]paramsArr也不行.难道调用时非要写成new string[]{this.ctrlCity.Value}?

[解决办法]
MSDN:
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);
}
}
[解决办法]
是这样的。
[解决办法]
params 是指这个参数是个数组

SP_Common(iKey, this.ctrlCity.Value);

此时的this.ctrlCity.Value不是数组
类型不匹配,所以错误

new string[]{this.ctrlCity.Value}
时,传的是数组,故正确

当然也可以
public DataSet SP_Common(int iKey, string[] paramsArr){。。。} 
去掉params 关键字
[解决办法]
其实是这样的

函数:

public void Test1(String p1, params Int32[] p2);

调用者可以传入N个参数(N>2)

Test("Hello world",6,4,3,7,7,7,32,3198,651,1086,13,11,458,1865);
--------------------------------------------
这些对应参数p2

这些参数将会填充局部变量p2
[解决办法]
public DataSet SP_Common(int iKey, params string[] paramsArr){。。。} 

调用时SP_Common(iKey, this.ctrlCity.Value);
应该是没有问题的.
会不会是其它问题引起的错误呢.
你把代码都贴出来看看吧

热点排行