我正在尝试将Excel工作表中的一些列标题添加到String[]中,但如果没有得到一组标题,则可以假定需要定义的是另一组标题。 希望下面的代码比我所能解释的更好地显示了它:
string[] requiredHeaders = { "orderNo",
"styleNo",
"description",
"size",
"colour",
"qtyPerCarton",
"numberOfCartons",
"total" };
CurrentRow = 1;
int headerRow = HeaderCheck(ref headerMap, requiredHeaders);
//Check we have headers to pass before continuing
if(headerRow != 0)
{
ProcessDeliveryNote(ref headerMap, headerRow);
}
else
{
string[] requiredHeaders = { "description",
"qtyPerCarton",
"cartonWeight",
"cartonSize",
"noOfCartons",
"totalNoOfUnits" };
headerRow = HeaderCheck(ref headerMap, requiredHeaders);
if(headerRow != 0)
在第二次出现String[]requiredHeaders时,出现以下错误:无法在此作用域中声明名为requiredHeaders的本地参数,因为该名称正在封闭的本地作用域中用于定义本地或参数
您正在尝试两次定义名为requiredHeaders的变量。 第二次您不需要创建它,因为它已经存在--您只需为它分配一个不同的值。
所以不是
string[] requiredHeaders = { "description",
"qtyPerCarton",
"cartonWeight",
"cartonSize",
"noOfCartons",
"totalNoOfUnits"
};
使用
requiredHeaders = new string[] {
"description",
"qtyPerCarton",
"cartonWeight",
"cartonSize",
"noOfCartons",
"totalNoOfUnits"
};
这样您就不会重新创建requiredHeaders,而是创建一个新数组并将其分配给requiredHeaders。
您正在声明另一个变量,其名称已在同一作用域中声明。 要么给第二个变量一个新名称,要么删除声明,只执行requiredHeaders=new string[]{values here}
这里有一篇简单的文章,可以给你一个通俗易懂的解释。