感叹号在数组中存储多个函数调用
本文关键字:函数调用 存储 数组 感叹 | 更新日期: 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的索引值,那么我该怎么做呢?
如果您想在给定的数组中累积值,那么不要在方法中创建新的值,而是将其声明为参数并修改值。