C# 知道为什么数组的第二个元素没有被赋值吗?

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

我已经建立了一个电子表格程序,其中包含26×26的单元格对象网格。我设置了一个方法来处理用户输入的公式。例如,用户可以输入=A1+A2,该方法检查单元格A1和A2的值并将它们相加。由于某些原因,未将第二个单元格的值指定给数组

代码继续其他运算符的switch case语句,但这对于此问题并不重要

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
    数组长度是准确的
  • 列表项索引1处的单元格值不为零
  • 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将该方法作为一个参数。我花了比我自豪的更长的时间才承认它抓住了那个错误,因为它隐藏在显而易见的地方。无论如何,谢谢你的回答。我会接受正确的答案。