我如何将一个变量参数从一个方法获取到另一个方法

本文关键字:一个 方法 获取 另一个 参数 变量 | 更新日期: 2023-09-27 17:56:53

Hy,

我有以下构造器:

 public partial class SelectSize : Form
    {
        public SelectSize(String name)
        {
            this.Name = name;
            InitializeComponent();
        }
        public String Name
        { get; set; }

我想让 Name 在我的以下方法中使用它:

p private void button1_Click(object sender, EventArgs e)
    {
        if (((int.Parse(noRows.Text) % 2) == 0) && (((int.Parse(noCols.Text) % 2) == 0)) && ((int.Parse(noRows.Text) ==
            int.Parse(noCols.Text))) && ((int.Parse(noRows.Text) > 6) && ((int.Parse(noRows.Text) > 6))))
        {
            //String name = this.Name;
            PlayMe f = new PlayMe(int.Parse(noCols.Text), int.Parse(noCols.Text), Name);
            this.Hide();
            f.ShowDialog();
            this.Close();

但我得到名称的空引用。

如何将一个变量转移到另一个方法?

真诚地,

我如何将一个变量参数从一个方法获取到另一个方法

如果是这样。名称为 null,则调用了不同的构造函数,或者实际上将 null 传递给了构造函数。检查一下。当然,在此期间它可能已被覆盖。例如,从我们的角度来看。因为我们不知道你所有的代码,这个。名称 = 空;可能在InstanciateComponent().

好吧,这两个方法可能不会在此类的同一(相同)实例上执行。 比较 ojbjects 的地址,如果它们确实相等。

顺便说一句,你应该称this.Name而不是this.nameInstanciateComponent()应该instanciateComponent().

除非你

设置它,否则名称将为空。您需要给出默认值才能获取它。

当然,它将是空引用,因为您不初始化它,您将如何设置 name 的值?

>_button1_Click_?我猜你和 Form1.Name 有碰撞

当你写的时候

this.Name = "value";

您尝试更改表单1的名称

上级:

试试这个:

namespace test
{
    public partial class SelectSize : Form
    {
        public SelectSize(String name)
        {
            InitializeComponent();
            this.Name = name;
        }
        public String Name
        { get; set; }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(this.Name); // It must show a string from SelectSize's constructor
        }
    }
}
我现在

不知道我的上述代码不起作用的原因。

谢谢大家的帮助,你们的好建议使我改进了我的代码并找到了解决方案。

初始形式将类似于波纹管:

 private void nXNGameToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SelectSize ss = new SelectSize(this);
            ss.ShowDialog();
        }

现在选择大小表单和button_Click是:

public partial class SelectSize : Form
    {
        MainWin f1;
        public SelectSize(MainWin f1)
        {
            this.f1 = f1;
            InitializeComponent();
        }
        public String Name
        { get; set; }
        private void button1_Click(object sender, EventArgs e)
        {
            if (((int.Parse(noRows.Text) % 2) == 0) && (((int.Parse(noCols.Text) % 2) == 0)) && ((int.Parse(noRows.Text) ==
                int.Parse(noCols.Text))) && ((int.Parse(noRows.Text) > 6) && ((int.Parse(noRows.Text) > 6))))
            {
                //String name = this.Name;
                PlayMe f = new PlayMe(int.Parse(noCols.Text), int.Parse(noCols.Text), f1.Name);
                this.Hide();
                f.ShowDialog();
                this.Close();