C# 我在使用类中的函数时出错

C# 我在使用类中的函数时出错,c#,C#,我创造了一个刽子手游戏。但是所有的代码都在GUI中。我已经阅读了很多编程书籍,我想使用函数并真正面向对象编程,而不是将所有内容都放在GUI中。所以我试着创建一个函数来生成一个随机单词,但它不起作用。它引发一个错误:mscorlib.dll中发生类型为“System.StackOverflowException”的未处理异常 class GetSecretWord { public static string GetWord() { string unsortedw

我创造了一个刽子手游戏。但是所有的代码都在GUI中。我已经阅读了很多编程书籍,我想使用函数并真正面向对象编程,而不是将所有内容都放在GUI中。所以我试着创建一个函数来生成一个随机单词,但它不起作用。它引发一个错误:mscorlib.dll中发生类型为“System.StackOverflowException”的未处理异常

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();
    }
}

我用一个messagebox来测试它是否工作,但它不

将您的报税表更改为return
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;
}
公共静态字符串GetWord()
{
string unsortedwords=“master、world、bucket、legend、method”;
List sortedwords=unsortedwords.Split(',).ToList();
int index=new Random().Next(sortedwords.Count);
字符串secretWord=sortedwords[index];
返回密文;
}

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

将return更改为return
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;
}
公共静态字符串GetWord()
{
string unsortedwords=“master、world、bucket、legend、method”;
List sortedwords=unsortedwords.Split(',).ToList();
int index=new Random().Next(sortedwords.Count);
字符串secretWord=sortedwords[index];
返回密文;
}

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

您应该返回secretWord,但不是一次又一次地调用同一个方法……如果将单词列表放入堆栈中,您可以随机化单词并一次弹出一个,而不必担心重复。您还应该在类的整个生命周期中使用一个随机实例。您应该返回secretWord,但不是一次又一次地调用同一个方法……如果您将单词列表放入堆栈中,您可以随机化单词并一次弹出一个,而不必担心重复。您还应该在类的整个生命周期中使用一个随机实例。当我这样做时,出现了一个错误:预期的方法名称|我以前尝试过这个方法并试图返回secretWord,但当它出现错误时,我真的措手不及。当我这样做时,出现了一个错误:预期的方法名称|我以前尝试过这个方法并试图返回secretWord但当它出现那个错误时,我真的措手不及。