感叹号在数组中存储多个函数调用

本文关键字:函数调用 存储 数组 感叹 | 更新日期: 2023-09-27 18:25:58

My函数返回一个包含2个值的int数组比方说,res[0]和res[1]

当我在for循环中多次调用数组,并且将结果存储在另一个数组中时,在每次迭代中,结果都会被新结果重写。

如果第一个调用返回[0,1],数组将把[0,1]存储在索引[0]和[1]处,这很好,但当我再次调用该函数时,新结果存储在相同的索引[0]和[1]我该如何避免这种情况?

功能代码:

 private void MatrixMul(string subInput, int[,] key, int [] result)
    {
        for (int row = 0; row < key.GetLength(0); row++)
        {
            for (int col = 0; col < key.GetLength(0); col++)
            {
               result[row]+= key[row, col] * AtoZ.IndexOf(subInput[col]);   
            }
        }
    }

呼叫代码:

for (int i = 0; i < outPut.Length; i++)
            {
               MatrixMul(outPut[i], key,encChars);
            }

例如,我的outPut包含以下内容:"TH"、"IS"、"AT"当我用数组"TH"的第一个元素调用函数时,它会将"T"转换为它的等价数,并应用一些计算,与"H"相同。假设最后的答案是20表示"T",30表示"H"。问题是,每次encChars都会将值存储在索引0和1处:encChars[0]=20encChars[1]=30当我再次调用该函数时,它会将新值存储在0和1……这是因为我不会在每次调用时更改encChars的索引值,那么我该怎么做呢?

感叹号在数组中存储多个函数调用

如果您想在给定的数组中累积值,那么不要在方法中创建新的值,而是将其声明为参数并修改值。