好的,我在这里仍有问题: 我的代码如下所示:
public static void Init_grablistFile(string grabListPath)
{
int compt = 0;
string List_grablist = "";
var line = File.ReadAllLines(grabListPath);
for (int i = 0; i < line.Length; i++)
{
if (line[i].Contains("="))
{
string[] var_temp = line[i].Split(new Char[] {'='});
ResizeArray(GlobalVars.tab_grablist, new int[] { compt + 1, 2 });
GlobalVars.tab_grablist[compt, 0] = var_temp[0];
GlobalVars.tab_grablist[compt, 1] = var_temp[1];
//Console.WriteLine(GlobalVars.tab_grablist[compt, 0]);
//Console.WriteLine(GlobalVars.tab_grablist[compt, 1]);
}
else
{
if (List_grablist == "")
{
List_grablist = line[i];
}
else
{
List_grablist = List_grablist + "|" + line[i];
}
}
}
//LoadTableFromString(ref GlobalVars.Table_Grablist, ref List_grablist);
}
public static void LoadTableFromString(ref string[] table, ref string sString, bool cleanup = false)
{
table = sString.Split(new Char[] { '|' });
if (cleanup)
{
sString = "";
}
}
private static Array ResizeArray(Array arr, int[] newSizes)
{
if (newSizes.Length != arr.Rank)
throw new ArgumentException("arr must have the same number of dimensions " +
"as there are elements in newSizes", "newSizes");
var temp = Array.CreateInstance(arr.GetType().GetElementType(), newSizes);
int length = arr.Length <= temp.Length ? arr.Length : temp.Length;
Array.ConstrainedCopy(arr, 0, temp, 0, length);
return temp;
}
我的2个全球变量是:
public static string[,] tab_grablist = new string[1, 2];
public static string[] Table_Grablist;
当我调用Init_grablist时,我收到Global.tab_grablist引发异常的错误。 我不知道发生了什么事。有什么想法吗?
编辑更新代码。
答案 0 :(得分:0)
您需要在ref
方法调用中添加LoadTableFromString
,或从ref
声明的第一个参数中删除LoadTableFromString
,例如根据您当前的代码,这样调用。
LoadTableFromString(ref GlobalVars.Table_Grablist, ref List_grablist);
或以这种方式声明方法:
public static void LoadTableFromString(string[] table, ref string sString, bool cleanup = false)
此外,您应该对null
和table
上的sString
进行检查,并查看其中哪一项将作为null
进行验证。