如何在下一个位置向数组添加值

dar*_*rko 0 c#

我正在构建一个像数码相机一样的小应用程序,在我的拍照功能中,我想在我的阵列中插入一个随机数(我成功了),我的问题是,当我拍摄多张照片时,价值总会进入第一个位置.我的代码:

public override void TakePhoto()
{
    Random rnd = new Random();
    int photo = rnd.Next(1, 10);
    for (int i = 0; i < 1; i++)
    {

        MemoryCard.buffer[i] = photo;
    }
}

class Program
{
    static void Main(string[] args)
    {

        DigitalCamera digitalCamera = 
            new DigitalCamera("kodak", 43, newMemoryCard, 3);

        digitalCamera.TakePhoto();
        digitalCamera.TakePhoto();
        digitalCamera.TakePhoto();

    }
}
Run Code Online (Sandbox Code Playgroud)

每张照片后我如何跳到下一个位置?

Tig*_*ran 5

你明确地说要把下一个值放在第一个位置.

看看你的代码:

for (int i = 0; i < 1; i++)
{
   MemoryCard.buffer[i] = photo;
}
Run Code Online (Sandbox Code Playgroud)

i 总是 0

要解决此问题,只需将i值保存到某个全局变量中,或者将下一个索引接受保存为TakePhoto(...)函数中的参数.

例:

int curindex = 0; //GLOBAL VARIABLE 

public override void TakePhoto()
{
   Random rnd = new Random();
   int photo = rnd.Next(1, 10);
   if(curindex < MemoryCard.buffer.Length) //IF CURINDEX LESS THE TOTAL ARRAY LENGTH
   {
      MemoryCard.buffer[curindex] = photo;  //ASSIGN PHOTO IN CURRENTINDEX
      curindex ++;                          //INCEREMENT CURRENTINDEX
   }
}
Run Code Online (Sandbox Code Playgroud)