我正在尝试创建一个随机选择制作者。我希望我的程序选择一个随机数,然后将其应用于if。像这样 -
Random random = new Random();
random.next(0, 10).ToString());
if (random == 1)
{
messagebox.show("Good Joke")
}
else if(random == 2)
{
messagebox.show("Terrible Joke")
}
等...
有人可以帮忙吗。
答案 0 :(得分:1)
这只是初始化Random
,并使用一系列数字调用Next
方法。
原始代码问题:
next
而不是Next
,C#
是区分大小写的。Next
操作的结果。ToString
是多余的,无需转发string
。<强>代码:强>
var random = new Random();
int number = random.Next(0, 10);
// If you gonna use alot of conditions like this, a better solution will be to use: switch
if (number == 1)
{
// Do Something
}
else if (number == 2)
{
// Do Something else
}
答案 1 :(得分:1)
有几种方法可以做到这一点。这是其中三个。
第一种方法是创建一个消息数组。
string[] messages = new string[]
{
"Good Joke",
"Terrible Joke"
};
// ...
MessageBox.Show(messages[random.Next(messages.Length)]);
第二种方法是使用字典,这样您就可以在运行时轻松添加/删除条目。确保键匹配索引。
Dictionary<int,string> messages = new Dictionary<int,string>()
{
{ 0, "Good Joke" }
{ 1, "Terrible Joke" }
};
// ...
MessageBox.Show(messages[random.Next(messages.Count)]);
最后你可以使用switch语句。
string msg = string.Empty;
switch (random.Next(2)) // The amount of cases ...
{
case 0: msg = "Good Joke"; break;
case 1: msg = "Terrible Joke"; break;
}
MessageBox.Show(msg);
答案 2 :(得分:0)
你必须将random.Next的输出存储在这样的变量中。
Random random = new Random();
var val = random.Next(0, 10);
if (val == 1)
{
MessageBox.Show("Good Joke");
}
else if(val == 2)
{
MessageBox.Show("Terrible Joke");
}