我的代码如下:
private void btnStart_Click(object sender, EventArgs e)
{
txtAnalisa.Text = "";
string filename = txtSampel.Text;
reader = new WaveFileReader(filename);
int length = 1000;
byte[] buffer = new byte[length];
reader.Read(buffer, 0, length);
sample = new double[reader.Length];
for (int n = 0; n < length; n++)
{
sample[n] = BitConverter.ToInt32(buffer,n);
txtAnalisa.Text += n + ". Sampel = " + sample[n] + Environment.NewLine;
}
}
但是当我运行时,出现了一个未处理的参数异常:
mscorlib.dll 中发生"System.ArgumentException"类型的未处理异常
附加信息:目标数组不够长,无法复制集合中的所有项。检查数组索引和长度。
我该怎么办?
您有一条清晰的错误消息:
目标阵列不够长
在您的代码中,只有一个数组具有硬编码大小,那就是buffer
。阵列不够长。正如评论中所建议的,length
变量应该更大,以增加buffer
容量。