C#两窗体(或类)之间传值
转载:https://blog.****.net/zt15732625878/article/details/79685336
窗体之间大致包含三种方法:
1、通过全局变量
2、通过构造函数传递参数
3、通过委托实现
一、通过全局变量
在不同窗体间传值,最专业的做法是新建一个类B.cs,在类B中定义Public static 全局静态变量,使用类A赋给B值,类C再去访问B,实现A->C.反之,也可实现C->B->A.
特点 : 双向传值,实现简单
缺点: 静态变量在类加载的时候分配内存,存储于方法区,一般不会被销毁,在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。
二、通过构造函数传递参数
特点 : 单向传值,只能主窗体给子窗体传值,实现简单。
三、使用委托传值
特点 :适合子窗体数据实时回传父窗体。
叨叨两句
项目中父窗体向子窗体传值传的是固定值,用的是第一种方式,子窗体向父窗体传值传的是变化的值,用的是第三种方式,一般第一种最简单,但是安全性、封装性降低,以后多实用第三种委托的方式。