好的,我仍然有问题:我的代码看起来像这样:
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;
}我的两个全局变量是:
public static string[,] tab_grablist = new string[1, 2];
public static string[] Table_Grablist;当我调用Init_grablist时,我得到一个Global.tab_grablist抛出异常的错误。我不知道发生了什么。有什么想法吗?
编辑以更新代码。
发布于 2014-06-22 11:29:14
您需要将ref放在LoadTableFromString方法调用中,或者从LoadTableFromString声明的第一个参数中删除ref,例如,在给定当前代码的情况下以这种方式调用。
LoadTableFromString(ref GlobalVars.Table_Grablist, ref List_grablist);或者这样声明方法:
public static void LoadTableFromString(string[] table, ref string sString, bool cleanup = false)此外,您应该检查table和sString上的null,并查看其中哪一个将作为null提供,以便将来进行校对。
https://stackoverflow.com/questions/24347842
复制相似问题