通过单击按钮从其他 class 获取变量
Get variables from other class from button click
对 C# 相当陌生,在学习一些教程时遇到了问题。
如何将一个 class 生成的变量传回主窗体,以便我可以在单击按钮时显示它?
此代码模拟患者的心率:
class patientSim
{
int hr = new int();
public static genStats()
{
Random hr_ = new Random();
int hr = hr_.Next(40, 131);
}
}
此代码应在单击按钮时显示心率 hr。
public partial class mainForm : Form
{
public static void simBtn_Click(object sender, EventArgs e)
{
patientSim.genStats();
MessageBox.Show = hr;
}
}
我相信这很简单,但我完全可以理解它。
您的方法需要一个 return 值:
public static int genStats()
{
Random hr_ = new Random();
int hr = hr_.Next(40, 131);
return hr;
}
然后使用:
public static void simBtn_Click(object sender, EventArgs e)
{
int hr = patientSim.genStats();
MessageBox.Show(hr);
}
记住你必须在你的方法上声明一个 return 值。如果你不想 return 任何东西,你可以使用 void
classpatientsSim
(按惯例应该写成PatientSim
已经hr
定义为私有字段,需要修改那个class为了访问它。一种可能的修改是向 patientSim 添加一个 getter,即 returns hr
:
的值
public int Hr { get { return hr; } }
然后在你的表单中
patientSim.genStats();
MessageBox.Show("HR: " + patientSim.Hr);
不过您还有一些其他问题:
int hr = hr_.Next(40, 131);
隐藏class级变量hr
。所以将其更改为
hr = hr_.Next(40, 131);
然后,您的 class 的实例和静态范围部分不匹配。您可以将 class 级别 hr
与建议的 getter 一起更改为静态,或者将事件处理程序更改为非静态。
对 C# 相当陌生,在学习一些教程时遇到了问题。
如何将一个 class 生成的变量传回主窗体,以便我可以在单击按钮时显示它?
此代码模拟患者的心率:
class patientSim
{
int hr = new int();
public static genStats()
{
Random hr_ = new Random();
int hr = hr_.Next(40, 131);
}
}
此代码应在单击按钮时显示心率 hr。
public partial class mainForm : Form
{
public static void simBtn_Click(object sender, EventArgs e)
{
patientSim.genStats();
MessageBox.Show = hr;
}
}
我相信这很简单,但我完全可以理解它。
您的方法需要一个 return 值:
public static int genStats()
{
Random hr_ = new Random();
int hr = hr_.Next(40, 131);
return hr;
}
然后使用:
public static void simBtn_Click(object sender, EventArgs e)
{
int hr = patientSim.genStats();
MessageBox.Show(hr);
}
记住你必须在你的方法上声明一个 return 值。如果你不想 return 任何东西,你可以使用 void
classpatientsSim
(按惯例应该写成PatientSim
已经hr
定义为私有字段,需要修改那个class为了访问它。一种可能的修改是向 patientSim 添加一个 getter,即 returns hr
:
public int Hr { get { return hr; } }
然后在你的表单中
patientSim.genStats();
MessageBox.Show("HR: " + patientSim.Hr);
不过您还有一些其他问题:
int hr = hr_.Next(40, 131);
隐藏class级变量hr
。所以将其更改为
hr = hr_.Next(40, 131);
然后,您的 class 的实例和静态范围部分不匹配。您可以将 class 级别 hr
与建议的 getter 一起更改为静态,或者将事件处理程序更改为非静态。