在我的代码中,我们可以看到我使用random.Next从ListBox中拉出一个随机行。问题是,如果我想检查同一行的字符数,我正在使用一个新的随机数,这会导致一些问题。
如何在IF语句中使用第一个随机数?
SendKeys.Send(lbMessage.Items[random.Next(lbMessage.Items.Count)].
ToString().Substring(currentChar++, 1));
if (currentChar == lbMessage.Items[random.Next(lbMessage.Items.Count)].ToString().Length)
{
SendKeys.Send("{enter}");
tmrSpace.Enabled = false;
currentChar = 0;
}
答案 0 :(得分:2)
将第一个随机数保存在局部变量中,稍后再使用,如下所示:
int ran = random.Next(lbMessage.Items.Count);
SendKeys.Send(lbMessage.Items[ran].ToString().Substring(currentChar++, 1));
if (currentChar == lbMessage.Items[ran].ToString().Length) {
SendKeys.Send("{enter}");
tmrSpace.Enabled = false;
currentChar = 0;
}
答案 1 :(得分:1)
简单地将其备份到变量: - )
var rnd = random.Next(lbMessage.Items.Count);
SendKeys.Send(lbMessage.Items[rnd].
ToString().Substring(currentChar++, 1));
if (currentChar == lbMessage.Items[rnd].ToString().Length)
{
SendKeys.Send("{enter}");
tmrSpace.Enabled = false;
currentChar = 0;
}
答案 2 :(得分:0)
暂时存储随机性怎么样?
int randomness = random.Next(lbMessage.Items.Count);
SendKeys.Send(lbMessage.Items[randomness].ToString().Substring(currentChar++, 1));
if (currentChar == lbMessage.Items[randomness].ToString().Length)
{
SendKeys.Send("{enter}");
tmrSpace.Enabled = false;
currentChar = 0;
}
答案 3 :(得分:0)
这是你要找的吗?
int index = random.Next(lbMessage.Items.Count);
string value = lbMessage.Items[index].ToString();
SendKeys.Send(value.Substring(currentChar++, 1));
if (currentChar == value.Length)
{
SendKeys.Send("{enter}");
tmrSpace.Enabled = false;
currentChar = 0;
}
答案 4 :(得分:0)
如果将种子值传递给Random()构造函数,则每次都会得到相同的随机值。
Random random = new Random(86); // Seed can be any Int32 value
这是你想要完成的吗?我原以为塞尔吉奥的回答是你正在寻找的,但似乎并不是。