使用类

时间:2016-12-25 14:51:49

标签: c#

我创造了一个Hangman游戏。但所有代码都在GUI中。我一直在阅读大量的编程书籍,我想使用函数,真正编程面向对象,而不是将所有内容都放在GUI中。所以我尝试创建一个生成随机单词的函数,但它不起作用。它会抛出一个错误:类型为#System; Stack.StackOverflowException'的未处理异常发生在mscorlib.dll。

class GetSecretWord
{
    public static string GetWord()
    {
        string unsortedwords = "master,bother,bucket,legend,method";
        List<string> sortedwords = unsortedwords.Split(',').ToList();

        int index = new Random().Next(sortedwords.Count);
        string secretWord = sortedwords[index];

        return GetWord();
    }
}

我做错了什么?

另外,在我的表单代码中:

 private void btn_Play_Click(object sender, EventArgs e)
    {
        string theSecretWord = GetSecretWord.GetWord();
        MessageBox.Show(theSecretWord);
    }

我使用消息框来测试它是否有效,但它没有......

1 个答案:

答案 0 :(得分:2)

将您的回报更改为返回secretWord

 public static string GetWord()
 {
    string unsortedwords = "master,bother,bucket,legend,method";
    List<string> sortedwords = unsortedwords.Split(',').ToList();

    int index = new Random().Next(sortedwords.Count);
    string secretWord = sortedwords[index];

    return secretWord;
}

现在你递归调用导致堆栈溢出异常的函数。