从类中传递变量

时间:2015-02-14 15:58:46

标签: c# class variables

我对C#很陌生。我正在使用VS 2010。

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

也许有更好的方法可以做到这一点?

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

  1. 一个简单的方法就是,让你的班级实现一个 接口公开数据,并将其传递给其他表单 构造函数(getters + setters \ only getters取决于逻辑)

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

  3. 使用共享内存映射。

  4. 中途点服务..

  5. 套接字\ sychroniztion context

  6. 数据库...

答案 2 :(得分:0)

很容易将所有变量声明为私有,然后分配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);
        }
    }
}

答案 3 :(得分:-2)

public放在所有变量的前面。然后,在设置form2时,通常会在主代码窗口中显示public class Form2 : Form的文本。将其替换为public class Form2 : Form1,以便它采用Form1的所有属性。