我正在构建一个像数码相机一样的小应用程序,在我的拍照功能中,我想在我的阵列中插入一个随机数(我成功了),我的问题是,当我拍摄多张照片时,价值总会进入第一个位置.我的代码:
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)
每张照片后我如何跳到下一个位置?
你明确地说要把下一个值放在第一个位置.
看看你的代码:
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)