【发布时间】:2021-05-02 13:07:26
【问题描述】:
我是 C# 的初学者。无论我为以下代码尝试了什么,我都会得到 Index out of range 异常:
double[,] mysine = new double[0, NumPoints];
double s = (2 * Math.PI) / NumPoints;
for (int i = 0; i < NumPoints; i++)
{
mysine[0, i] = Math.Sin(i * s) + 1;
}
数组大小为 NumPoints,我的循环从零循环到 (NumPoints-1),这不会出错。我也尝试了其他事情,但无法解决。我还有什么错吗?
【问题讨论】:
-
double[0, X]如果大小为 0 则 ... -
确实,0是一个“空”维度,没有维度,什么都没有,不存在,大小为0,不允许有数据。但是
new double mysine[1, NumPoints]是一个one x NumPoints矩阵,其中 D1 = 1 个项目,D2 = NumPoints 个项目是大小,所以项目的总数是 1 x NumPoints。也就是说,它只是一个一维数组……所以可以简化,否则这里需要超过 1 个。 -
为了帮助您提高技能,请查看 C# Tag Wiki 和 Learn C# from Microsoft 以及在线教程和专业书籍。
标签: c# arrays for-loop indexing double