namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
int[] codes = { 39835, 72835, 49162, 29585, 12653, 87350, 74783};
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{}
private void label4_Click(object sender, EventArgs e)
{}
private void btnRandom_Click(object sender, EventArgs e)
{
Random mRandom = new Random();
int randcode = mRandom.Next(0, codes.Length - 1);
}
}
}
我想通过单击“btnRandom”从数组中提取随机代码并将其与字符串进行比较,但是当我尝试时,“int randcode”总是出现错误。
private void button1_Click(object sender, EventArgs e)
{
if (txtCode.Text == randcode) ;
{
MessageBox.Show("working");
}
}
试着让它像这样工作。
答案 0 :(得分:2)
你有一些问题:
codes
数组包含整数。您的文本框包含一个字符串。if
声明之后,您有一个分号,不应该在那里。randcode
未在类级别定义,因此您无法从与其声明的函数不同的函数访问它。简而言之,你想要这样的东西:
int randcode;
private void btnRandom_Click(object sender, EventArgs e)
{
Random mRandom = new Random();
randcode = mRandom.Next(0, codes.Length - 1);
}
private void button1_Click(object sender, EventArgs e)
{
if (txtCode.Text == codes[randcode].ToString())
{
MessageBox.Show("working");
}
}
答案 1 :(得分:1)
您要么将txtCode.Text
解析为整数,要么将randCode
转换为string
:
if (int.Parse(txtCode.Text) == randcode) ...
或
if (txtCode.Text == randcode.ToString()) ....
但是你可以/必须修复一些事情:
在Random.Next(min, max)
方法中,max
是独占的,因此调用必须如下:
int randcode = mRandom.Next(0, codes.Length);
您在btnRandom_Click()
内声明了ranCode,并且必须在Form1
类中:
public partial class Form1 : Form
{
int randCode;
int[] codes = { 39835, 72835, 49162, 29585, 12653, 87350, 74783};
....
randcode = mRandom.Next(0, codes.Length);
您在;
语句后面有if
,因此无论结果如何都会执行MessageBox.Show("working");
。
最后代码应该是这样的:
public partial class Form1 : Form
{
int randCode;
int[] codes = { 39835, 72835, 49162, 29585, 12653, 87350, 74783};
...
private void btnRandom_Click(object sender, EventArgs e)
{
Random mRandom = new Random();
randcode = mRandom.Next(0, codes.Length);
}
...
private void button1_Click(object sender, EventArgs e)
{
if (int.Parse(txtCode.Text) == randcode)
{
MessageBox.Show("working");
}
}
...
}
答案 2 :(得分:0)
那是因为txtCode.Text是一个字符串而randcode是一个整数。你不能比较这两个。它们必须是字符串或整数。试试这个
if(txtCode.Text == randcode.ToString())
我还注意到int randcode不在此方法的范围内。你通过在类范围声明它来调用randcode一个成员变量