我有以下 Winforms 层次结构。
Form ==> AForm ==> BForm
int? X;
并且在 中定义了一个可以为空的成员FormA
。在 中FormB
,有以下代码。
public partial class FormA: Form
{
public int? X { get; set; }
public FormA(int? x) { X = x }
....
public partial class FormB: FormA, IFormAView
{
public FormB()
{
AsyncCall(() =>
{
int z = X ?? 0;
System.Diagnostics.Debug.WriteLine("X: " + X.ToString() + " z: " + z.ToString());
return z;
}
public static T GetForm<T>(int? x)
{
T form = new T();
form.X = x;
form.Show();
}
GetForm<FormB>(100);
X
从未被分配为空或零。我正在尝试关闭并打开表单FormB
。偶尔z
为零(可能每 10 次)。我设置了一个条件中断,它在z==0
上线时中断return z
。
当击中断点时。调试写入
X: z: 0
即使调试显示 FormA:X 也不为零。