我正在调用一个将列表作为输入参数的函数,如下所示。尽管列表不为空,但我发现错误索引超出了数组的范围,就在 myFunction_2 的声明行处,为什么?
public List<string> List1 = new List<string>();
public List<string> List2 = new List<string>();
public string[] value_A=new string[3];
public string[] value_B=new string[3];
public string[] Out_var=new string[3];
public async Task myFunction_1()
{
for (UInt16 i = 0; i < 3; i++)
{
List1.Add(value_A[i]);
List2.Add(value_B[i]);
}
myFunction_2(List1, List2);
}
public void myFunction_2(List<string> var_type, List<string> var_format) //for this Line I get the Error
{
Out_var[0]=var_type[0]+"_"+var_format[0];
Out_var[1]=var_type[1]+"_"+var_format[1];
Out_var[2]=var_type[2]+"_"+var_format[2];
}
您在调用 myFunction_2(List1, List2) 的行上似乎遇到了错误,并出现了您在评论中提到的错误消息。该错误可能是因为 Out_var 未在 myFunction_2 范围内声明或定义。使用Out_var之前需要声明并初始化它。这是代码的修改版本,进行了必要的更改:
public List<string> List1 = new List<string>();
public List<string> List2 = new List<string>();
public string[] value_A = new string[3];
public string[] value_B = new string[3];
public async Task myFunction_1()
{
for (UInt16 i = 0; i < 3; i++)
{
List1.Add(value_A[i]);
List2.Add(value_B[i]);
}
// Declare and initialize Out_var
string[] Out_var = new string[3];
myFunction_2(List1, List2, Out_var);
// Now you can use Out_var as needed
// For example, you can access Out_var[0], Out_var[1], Out_var[2]
}
public void myFunction_2(List<string> var_type, List<string> var_format, string[] Out_var)
{
Out_var[0] = var_type[0] + "_" + var_format[0];
Out_var[1] = var_type[1] + "_" + var_format[1];
Out_var[2] = var_type[2] + "_" + var_format[2];
}