我很难在C#中声明二维数组,填充它们,然后返回数组。
目前,我声明的数组如下:
private static string[,] _programData = new String[50,50];
public string[,] ProgramData
{
get
{
return _programData;
}
}_programData正在显示错误“无法隐式转换”类型为“string,to string”
我应该指出,我试图从另一个类调用ProgramData,如下所示:
for (serviceCount = 0; serviceCount <= ffm.Program.Length; serviceCount++)
{
Console.WriteLine("Program Number: " + ffm.Program[serviceCount].ToString());
for (serviceDataCount = 0; serviceDataCount <= ffm.ProgramData.Length; serviceDataCount++)
{
**Console.WriteLine("\t" + ffm.ProgramData[serviceCount, serviceDataCount].ToString());**
}
}错误发生在上面的粗体行上:
对象引用未设置为对象的实例。
我不认为我如何声明数组有问题,只是类型不匹配,我不明白。
问候
发布于 2009-08-20 10:27:06
首先,调用ffm.ProgramData.Length将如前所述返回2500 (50 * 50),因此您需要将此计数修正为ffmProgramData.GetLength(1)以返回第二个维度的大小。
其次,您获得的“对象引用未设置为对象实例”的错误发生,因为您引用的是数组中未初始化的部分。确保数组充满了空字符串,或者至少填充了空字符串(显然,您需要在构造函数中运行这个循环,在适当的情况下更改变量名,因为ProgramData只读取它):
for(int fDim = 0; fDim < ffm.ProgramData.GetLength(0); fDim++)
for(int sDim = 0; sDim < ffm.ProgramData.GetLength(1); sDim++)
ffm.ProgramData[fDim, sDim] = "";第三,不需要在循环中调用ToString()方法。你在把一根绳子投射到一根绳子上。
发布于 2009-08-20 10:08:37
programData正在显示错误“无法隐式转换”类型为“string,* to string”
不,它没有显示任何错误。代码编译得很好(使用C# 3.5)。
https://stackoverflow.com/questions/1304979
复制相似问题