private void Start_Click(object sender, EventArgs e)
{
string[] words = new string[10];
words[0] = "Starks";
words[1] = "Lannisters";
words[2] = "Tullys";
words[3] = "Greyjoys";
words[4] = "Arryns";
words[5] = "Baratheons";
words[6] = "Tyrells";
words[7] = "Martells";
words[8] = "Targaryans";
words[9] = "Braavosi";
Random rword = new Random();
int randomNumber = rword.Next(10);
string asterickWordIntial = words[randomNumber].ToUpper();
string nonAsterickWord = words[randomNumber].ToUpper();
string asterickWordFinal = asterickWordIntial.Replace("A", "*");
asterickWordFinal = asterickWordIntial.Replace("B", "*");
asterickWordFinal = asterickWordIntial.Replace("C", "*");
asterickWordFinal = asterickWordIntial.Replace("D", "*");
asterickWordFinal = asterickWordIntial.Replace("E", "*");
asterickWordFinal = asterickWordIntial.Replace("F", "*");
asterickWordFinal = asterickWordIntial.Replace("G", "*");
asterickWordFinal = asterickWordIntial.Replace("H", "*");
asterickWordFinal = asterickWordIntial.Replace("I", "*");
asterickWordFinal = asterickWordIntial.Replace("J", "*");
asterickWordFinal = asterickWordIntial.Replace("K", "*");
asterickWordFinal = asterickWordIntial.Replace("L", "*");
asterickWordFinal = asterickWordIntial.Replace("M", "*");
asterickWordFinal = asterickWordIntial.Replace("N", "*");
asterickWordFinal = asterickWordIntial.Replace("O", "*");
asterickWordFinal = asterickWordIntial.Replace("P", "*");
asterickWordFinal = asterickWordIntial.Replace("Q", "*");
asterickWordFinal = asterickWordIntial.Replace("R", "*");
asterickWordFinal = asterickWordIntial.Replace("S", "*");
asterickWordFinal = asterickWordIntial.Replace("T", "*");
asterickWordFinal = asterickWordIntial.Replace("U", "*");
asterickWordFinal = asterickWordIntial.Replace("V", "*");
asterickWordFinal = asterickWordIntial.Replace("W", "*");
asterickWordFinal = asterickWordIntial.Replace("X", "*");
asterickWordFinal = asterickWordIntial.Replace("Y", "*");
asterickWordFinal = asterickWordIntial.Replace("Z", "*");
asterickWordFinal = HangTxtBox;
}
当我将asterickWordFinal设置为HangTxtBox时,我收到以下消息
"无法将System.Window.Forms.TextBox类型隐式转换为字符串"
但我听说如果你设置了asterickWordFinal.Text = HangTxtBox会正确,但是我收到了这条消息。
"字符串不包含文本的定义接受类型字符串的第一个参数可以找到"
所以,我想知道我是否遗漏了系统中的某些内容,命名空间还是我必须尝试覆盖?感谢您的帮助!
答案 0 :(得分:2)
你已经倒退了。 =
赋值运算符不接受 left 值并将其放在 right 变量中,它采用 right 值并且将它放在 left 变量中。像这样:
HangTxtBox.Text = asterickWordFinal;
这实质上意味着:
取
asterickWordFinal
的值并将其放入HangTxtBox.Text
。
答案 1 :(得分:0)
您是否想要获取文本框的价值?如果是这样的话应该是这个asterickWordFinal = Convert.ToString(HangTxtBox.Text);
答案 2 :(得分:-1)
这是一个副作用,你的星号代码可以简化很多。你所做的只是创建一个字符串,其中包含的字母与你选择的随机字母中的字母一样多。
你可以很容易地这样做:
...
string asterickWordIntial = words[randomNumber].ToUpper();
// create a string with the * character repeated as many times as the
// length of the random word
string asterickWordFinal = new string('*', asterickWordInitial.Length);
HangTxtBox.Text = asterickWordFinal;
请注意,您的代码假设没有单词可以包含非字母字符,这对于hangman来说可能没问题,您只需要确保在生成单词列表时知道。