2013-11-28 90 views
-1

当我编程用的DataRow数组prarameter一个功能,它提示“),”与该行private Dictionary<int,string> getViewColumnHeaderName(DataRow DR[]),想到这是我的代码:为什么C#不能传递数组参数?

private Dictionary<int,string> getViewColumnHeaderName(DataRow DR[]) 
{ 
    System.Collections.Generic.Dictionary<int, string> dic=new System.Collections.Generic.Dictionary<int, string>(); 
    for(int i=0;i<DR[0].Table.Columns.Count;i++) 
    { 
    dic.Add(i,DR[0].Table.Columns[i].ColumnName.ToString()); 
    } 
    return dic; 
} 

当我打勾的[],该程序可以运行正常,但我只想给参数一个数组,如何解决它?

回答

4

添加[]旁边的参数类型,没有参数名:

private Dictionary<int,string> getViewColumnHeaderName(DataRow[] DR) 
2

DataRow DR[]变化到DataRow[] DR

private Dictionary<int,string> getViewColumnHeaderName(DataRow[] DR) 

形式MSDN

当声明的阵列中,方括号([])必须出现在 类型,而不是标识符之后。在标识符之后放置括号是 在C#中不合法的语法。

int[] table; // not int table[]; 
0

前面已经提到,你应该添加[]参数类型不是参数名称。

这可能显得有点违反直觉,因为您会使用DR[i]来引用该数组中的项目。但是,在方法签名中,您正在定义将通过参数传递的内容,而不是特定的对象本身。正在传递的项目是一个数组DataRow,而不是数组

相关问题