从 class 传递变量

Passing variables from class

我是 C# 的新手。我正在使用 VS 2010。

将许多变量从 form1 传递到 form2 的最简单方法是什么? 我有一个包含 10 多个变量的 class,但我不知道如何一次传递它们。

也许有更好的方法?

将您的变量重构为具有属性的 class。创建此 class 的实例并将其传递到需要的地方

public 放在所有变量的前面。然后,在设置 form2 时,您通常会在主代码 window 中看到 public class Form2 : Form 的文本。将其替换为 public class Form2 : Form1,以便它采用 Form1.

的所有属性

首先,您应该提供有关您的需求的更多详细信息,例如: 如果另一种形式应该能够更改数据并且这些更改将反映在第一种形式中,那么这两种形式是否 运行 在同一个应用程序域中等等..

有很多方法可以做到这一点,这里只是我脑海中的一些:

  1. 一个简单的方法可能是,让您的 class 实施一个 接口暴露数据,并将其传递给另一个窗体 构造函数(getters + setters \ only getters depends the logic)

  2. 创建一个简单的dto(数据传输对象)并将其传递给另一个表单。

  3. 使用共享内存映射。

  4. 中途点服务..

  5. 套接字\同步上下文

  6. 数据库 ...

很容易将所有变量声明为私有,然后分配 getter 和 setter,例如 Form1:

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private string var1;
        private string var2;

        public string Var1{get{return this.var1;}set{this.var1 = value;}}    
        public string Var2{get{return this.var2;}set{this.var2 = value;}}              

        public Form1()
        {
            InitializeComponent();
        }  
    }
}

然后您可以从 Form2 获取或设置您的变量,例如:

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

            Form1 frm = new Form1();

            frm.Var1 = "Mystring1";
            frm.Var2 = "Mystring2";

            MessageBox.Show(frm.Var1);
            MessageBox.Show(frm.Var2);
        }
    }
}