有没有人碰到过这种情况,,窗体间单项数组值传递,明明已经显示接受到数据,,但是在timer中应用时候,,却发现是Null,这是咋回事
例如,在一个窗体里,
public partial class MainInterfaceForm : Form
{ private string Auth;
public string[] OPCreader;
public MainInterfaceForm(string Authority, string[] MfaceOPCread)
if (MfaceOPCread != null)
{
OPCreader = MfaceOPCread;
}
然后在另一个窗体里实例化传值
MainInterfaceForm mface = new MainInterfaceForm(null, read); //read为有数据数组
OPCreader 断点调试已经显示有数据了,,但是在MainInterfaceForm 时钟timer应用时却显示Null
求帮助高手帮忙解答,在线等!
例如,在一个窗体里,
public partial class MainInterfaceForm : Form
{ private string Auth;
public string[] OPCreader;
public MainInterfaceForm(string Authority, string[] MfaceOPCread)
if (MfaceOPCread != null)
{
OPCreader = MfaceOPCread;
}
然后在另一个窗体里实例化传值
MainInterfaceForm mface = new MainInterfaceForm(null, read); //read为有数据数组
OPCreader 断点调试已经显示有数据了,,但是在MainInterfaceForm 时钟timer应用时却显示Null
求帮助高手帮忙解答,在线等!
解决方案
5
窗体间的传值,建议用委托,理解后很方便。还有在写程序时尽量少用timer,不然会出现假死现象!
5
20
不是你骗本人,而是你骗你本人
你的做法就相当于
你的做法就相当于
static void Main(string[] args) { var a = new You(); var b = new You(new string[] { "abc", "123" }); Console.WriteLine(b.p[0]); Console.WriteLine(a.p[0]); //异常:未将对象引用设置到对象的实例 } class You { public string[] p; public You(string[] ar = null) { if (ar != null) p = ar; } }