本文介绍了从不同类访问变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将tboxValue的值传递给我的方法EE? 它总是打印0?

How do I pass the value of tboxValue to my method EE?  It always prints 0?

public partial class Form1 : Form
{

    public double tboxvalue;
    private string exportdata;

    public Form1()
    {
        InitializeComponent();
    }

    private void btnClicker_Click(object sender, EventArgs e)
    {
        Functions.EE();
    }
    private void txtData_CheckedChanged(object sender, EventArgs e)
    {
        bool @checked = ((CheckBox)sender).Checked;

        if (@checked.ToString() == "True")
        {
            exportdata = "Yes";
            tboxvalue = Convert.ToDouble(this.txtData.Text);
            System.Diagnostics.Debug.WriteLine(tboxvalue.ToString());
        }
        else
            exportdata = "No";
    }
}
class Functions
{
    public static void EE()
    {
        Form1 f1 = new Form1();
        System.Diagnostics.Debug.WriteLine(f1.tboxvalue.ToString());
    }
}

推荐答案

新建你正在创建一个新实例。 tboxvalue的值为0,因为对于新实例它为0。您更改了调用EE的实例的tbox值。

with new you are creating a new instance. The value of tboxvalue is 0 because it' 0 for a new instance. You changed tboxvalue of the instance calling EE.

    public static void EE(Form1 f1)
    {
        System.Diagnostics.Debug.WriteLine(f1.tboxvalue.ToString());
    }


    private void btnClicker_Click(object sender, EventArgs e)
    {
        Functions.EE(this);
    }

您必须将正确的实例传递给静态方法,而不是创建一个新的

You have to pass the correct instance to the static method instead of creating a new one.

问候,Chris


这篇关于从不同类访问变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-10 12:16