C#-如何在其他函数中使用变量
我正在尝试使用C#-如何在其他函数中使用变量,c#,windows,forms,function,C#,Windows,Forms,Function,我正在尝试使用BtnRed\u Click函数中Rnd函数的变量rand。返回没有任何作用。如果我更改Rnd函数的参数,我会得到一个错误 这是我的密码 namespace ColourPick_EDP2 { public partial class Form1 : Form { int RandomNum; int counter = 60; int rand; public Form1() {
BtnRed\u Click
函数中Rnd
函数的变量rand。返回没有任何作用。如果我更改Rnd
函数的参数,我会得到一个错误
这是我的密码
namespace ColourPick_EDP2
{
public partial class Form1 : Form
{
int RandomNum;
int counter = 60;
int rand;
public Form1()
{
InitializeComponent();
}
private void BtnStart_Click(object sender, EventArgs e)
{
BtnStart.Visible = false;
Tmr.Tick += new EventHandler(tmr_Tick);
Tmr.Start();
TbxDisplay.Text = counter.ToString();
Random rnd = new Random();
RandomNum = rnd.Next(0, 7);
Rnd(RandomNum);
}
private void tmr_Tick(object sender, EventArgs e)
{
counter--;
if (counter == 0)
{
Tmr.Stop();
}
TbxDisplay.Text = counter.ToString();
}
private int Rnd(int rand)
{
int rand = rand;
switch(rand)
{
case 1:
this.BackColor = System.Drawing.Color.Red;
break;
case 2:
this.BackColor = System.Drawing.Color.Blue;
break;
case 3:
this.BackColor = System.Drawing.Color.Green;
break;
case 4:
this.BackColor = System.Drawing.Color.Yellow;
break;
case 5:
this.BackColor = System.Drawing.Color.Purple;
break;
case 6:
this.BackColor = System.Drawing.Color.Orange;
break;
}
return rand;
}
private void BtnRed_Click(object sender, EventArgs e)
{
if (rand == 1)
{
lblScore.Text += 10;
}
}
}
}
在RND方法中,您实际上没有使用rand值做任何事情,所以只需使用RandomNum。它可能应该是randomNum而不是randomNum
private void BtnRed_Click(object sender, EventArgs e)
{
if (RandomNum == 1)
{
lblScore.Text += 10;
}
}
我怀疑您真正想做的是调用函数并让它做一些事情:
Random randomiser = new Random()
将函数调用为描述其功能的函数,例如ChooseNewColor而不是Rnd。如果愿意,您可以给它一个参数,也许可以指示它应该选择多少种颜色。以下是一份合适的声明:
private int ChooseNewColor(int numberOfColors)
{
int colorValue = randomiser.Next(1, numberOfColors +1)
switch(colorValue)
{
case 1:
this.BackColor = etc…
}
return colorValue;
}
现在调用函数
currentColor=选择新颜色(MaxColorValue)代码>
这假设MaxColorValue是一个表示最高颜色值的常数(在代码中可能为6),其输出将存储在一个名为currentColor的整数变量中,该变量已声明。在Rnd()中删除此行。
:int rand=rand代码>。你把那行放在那里想实现什么?“如果我更改Rnd函数的参数,我会得到一个错误。”如何更改它们?你有什么错误?如果你想得到一些帮助,请提供足够的信息让我们猜测你做了什么以及你做了什么。“返回没有任何作用”——你没有使用它返回的值,返回值正是你传入的值。你明白返回的意思吗?@CharlieWills好的,谢谢。如果这能为您解决问题,请将其标记为答案。这可能有助于您理解,当您调用函数时,参数的值会被传入,参数也会被赋予这些值。因此,在本例中,参数是MaxColorValue,其值为6。现在,在函数本身中,参数numberOfColors被赋值为6。return语句返回colorValue的值,然后在调用行上将该值分配给currentColor。