ハングマンゲームを作成しました。しかし、すべてのコードは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();
}
}
私は間違っていますか?また
、私のフォームのコードで:
private void btn_Play_Click(object sender, EventArgs e)
{
string theSecretWord = GetSecretWord.GetWord();
MessageBox.Show(theSecretWord);
}
私はそれが動作するかどうかをテストするためにメッセージボックスを使用しますが、それは...
あなたはsecretWordを返すべきですが、その代わりに同じメソッドを何度も何度も呼び出しています... –
単語リストをスタックに置くと、単語とPopを一度にランダム化でき、リピートを心配する。また、クラスの全生涯に1つのRandomインスタンスを使用する必要があります。 – Plutonix