C# 知道为什么数组的第二个元素没有被赋值吗?
我已经建立了一个电子表格程序,其中包含26×26的单元格对象网格。我设置了一个方法来处理用户输入的公式。例如,用户可以输入=A1+A2,该方法检查单元格A1和A2的值并将它们相加。由于某些原因,未将第二个单元格的值指定给数组 代码继续其他运算符的switch case语句,但这对于此问题并不重要C# 知道为什么数组的第二个元素没有被赋值吗?,c#,winforms,textbox,C#,Winforms,Textbox,我已经建立了一个电子表格程序,其中包含26×26的单元格对象网格。我设置了一个方法来处理用户输入的公式。例如,用户可以输入=A1+A2,该方法检查单元格A1和A2的值并将它们相加。由于某些原因,未将第二个单元格的值指定给数组 代码继续其他运算符的switch case语句,但这对于此问题并不重要 public static void ProcessBasicFormula(Cell selectedCell,Cell[,] cell,string[] cellsInUse, char ope
public static void ProcessBasicFormula(Cell selectedCell,Cell[,]
cell,string[] cellsInUse, char operatorInUse)
{
int[] valueOfCell = new int[cellsInUse.Length]; //valueOfCell and
cellInUse have same length
int counter = 0;
double answer = 0.0;
switch(operatorInUse)
{
case ('+'):
for (int i = 0; i < cellsInUse.Length; i++)
{
for (int j = 0; j < cellsInUse.GetLength(0); j++)
{
for (int k = 0; k < cellsInUse.GetLength(0); k++)
{
if (cellsInUse[i] == cell[j, k].CellID)
{
valueOfCell[counter] =Convert.ToInt32(cell[j,k].Text);
counter++;
}
}
}
}
answer = valueOfCell[0] + valueOfCell[1];
break;
公共静态无效处理基本公式(单元格选择单元格,单元格[,]
单元格,字符串[]单元格正弦,字符运算符使用)
{
int[]valueOfCell=new int[cellsasise.Length];//valueOfCell和
纤维素酶具有相同的长度
int计数器=0;
双答案=0.0;
开关(操作员使用)
{
大小写(“+”):
对于(int i=0;i
我希望两个单元格的值相加,但我得到的是第一个值加0。我的假设是:
cellsuise
数组长度是准确的newint[int]
将数组初始化为零;
int[]valueOfCell=newint[cellsasise.Length];
细胞窦是一维阵列
string[] cellsInUse
一维数组的getLength(0)
与.length
cellsasise.length==2
为真;
cellsuise.GetLength(0)==2
为真
因此j
和k
循环循环循环到2
我假设第一个单元格值幸运地位于[2,2]单元格的第一个子集中
cellsuise.GetLength(0)
是否应该是cell.GetLength(0)
=>j和cell.GetLength(1)
=>k这是如何回答这个问题的?你做了很多假设,但没有明确说明问题是什么。嗨,维娅先生,谢谢你的回答。事实证明,“CelliUse”并不是我想要设置“j”和“k”的数组长度。正确的逻辑是将它们设置为单元格数组“Cell”的长度,即passed将该方法作为一个参数。我花了比我自豪的更长的时间才承认它抓住了那个错误,因为它隐藏在显而易见的地方。无论如何,谢谢你的回答。我会接受正确的答案。