从按钮单击获取其他类的变量

时间:2015-04-15 16:51:29

标签: c# winforms class parameter-passing pass-by-reference

C#相当新,在完成一些教程时,我遇到了问题。

如何将从一个类生成的变量传递回主窗体,以便我可以在单击按钮时显示它?

此代码模拟患者的心率:

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;
    }
}

我确定它非常简单,但我可以完全理解它。

2 个答案:

答案 0 :(得分:1)

您的方法需要返回值:

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);
}

记住你必须在方法上声明一个返回值。如果您不想退回任何内容,请使用void

答案 1 :(得分:1)

patientsSim(根据惯例应该写成PatientSimhr定义为私有字段。您需要修改该类才能访问它。一个可能的修改将会要向patientSim添加一个getter,它返回hr

的值
public int Hr { get { return hr; } }

然后以你的形式

    patientSim.genStats();
    MessageBox.Show("HR: " + patientSim.Hr);

您还有一些其他问题:

int hr = hr_.Next(40, 131);

隐藏了类级变量hr。所以改为

hr = hr_.Next(40, 131);

然后,您的类的实例和静态范围部分之间存在不匹配。您可以将类级别hr更改为静态,以及建议的getter,或将事件处理程序更改为非静态。