我对 Windows Phone 和 C# 也有所了解。我发现我的 Coloring() 函数中有一个 IndexOutOfRangeException:
public void Coloring()
{
szinek_base.Add(Color.FromArgb(255, 0, 171, 169));
szinek_base.Add(Color.FromArgb(255, 140, 191, 38));
szinek_base.Add(Color.FromArgb(255, 160, 80, 0));
szinek_base.Add(Color.FromArgb(255, 230, 113, 184));
szinek_base.Add(Color.FromArgb(255, 240, 150, 9));
szinek_base.Add(Color.FromArgb(255, 27, 161, 226));
szinek_base.Add(Color.FromArgb(255, 229, 20, 0));
szinek_base.Add(Color.FromArgb(255, 51, 153, 51));
int remove;
Color szin = new Color();
Random generator = new Random();
List<int> lapok = new List<int>();
for (int l = 0; l < 16; l++)
{
lapok.Add(l);
}
for (int i = 0; i < 8; i++)
{
szin = szinek_base[generator.Next(0, szinek_base.Count)];
remove = lapok[generator.Next(0, lapok.Count)];
szinek[remove] = szin;
lapok.Remove(remove);
szinek_base.Remove(szin);
remove = lapok[generator.Next(0, lapok.Count)];
szinek[remove] = szin;
lapok.Remove(remove);
szinek_base.Remove(szin);
}
}
使用 try-catch 我还发现第二个 for() 循环包含错误。但是,如果我将块分成一半并使用 try-catch,它不会发现错误,也不会在第一部分中找到第二部分。顺便说一下,这段代码在 Windows 7 下作为记忆游戏的一部分运行良好,我没有想法。感谢您的帮助,并对语法和其他错误感到抱歉,我还不知道 StackOverflow 协议。
编辑:忘了提,主命名空间包含它们:
public List<Color> szinek_base = new List<Color>();
Color[] szinek = new Color[8];