通过单击按钮从其他 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 一起更改为静态,或者将事件处理程序更改为非静态。