void OpenClean( int i, int j) {
bnt[i, j] = new Button();
if (!bnt[i,j].Enabled) return;
bnt[i, j].Enabled = false;
bnt[i,j].BackColor = Color.Aquamarine;
bnt[i, j].Text = data[i, j].ToString();
if (data[i, j] == 0) {
if (i > 0 && j > 0 && data[i - 1, j - 1] == 0) OpenClean(i - 1, j - 1);
if (i > 0 && data[i - 1, j] == 0) OpenClean(i - 1, j);
if (i > 0 && j < 8 && data[i - 1, j + 1] == 0) OpenClean(i - 1, j + 1);
if (j > 0 && data[i, j - 1] == 0) OpenClean(i, j - 1);
if (j < 8 && data[i, j + 1] == 0) OpenClean(i, j + 1);
if (i < 8 && j > 0 && data[i + 1, j - 1] == 0) OpenClean(i + 1, j - 1);
if (i < 8 && data[i + 1, j] == 0) OpenClean(i + 1, j);
if (i < 8 && j < 8 && data[i + 1, j + 1] == 0) OpenClean(i + 1, j + 1);
}
It tells me Process is terminated due to StackOverflowException. Because of my limited experience,I didn't find an effective way. This question has been bothering me for a long time. Please help or try to give me some ideas how to solve it.
Thanks in advance!