C#绕过if(condition)语句而不填充条件?!神奇的事情发生了?
(C#绕过if(condition)语句而不填充条件?!神奇的事情发生了?,c#,if-statement,datagridview,boolean-logic,datagridviewcheckboxcell,C#,If Statement,Datagridview,Boolean Logic,Datagridviewcheckboxcell,(dgv_configCH是一个winform DataGridView)。如下图所示,VS executor位于if的括号内,条件为false。实际上,VS执行器在检查条件之后,而在离开函数之前,不会进入。在这个程序中,我的目的只是能够使用DataGridViewCheckBoxCell,因为dgv_configCH[e.ColumnIndex,e.RowIndex].Value.ToString()总是在dgv_configCH_CellValueChanged事件中返回true 好吧,这是
dgv_configCH
是一个winform DataGridView)。如下图所示,VS executor位于if的括号内,条件为false。实际上,VS执行器在检查条件之后,而在离开函数之前,不会进入。在这个程序中,我的目的只是能够使用DataGridViewCheckBoxCell
,因为dgv_configCH[e.ColumnIndex,e.RowIndex].Value.ToString()
总是在dgv_configCH_CellValueChanged
事件中返回true
好吧,这是真的,当编译器开始运行时——这是肯定的;) 请换成 var isDirty=this.dgv_configCH.IsCurrentCellDirty; 如果(isDirty)
您将看到,您使用CommittedIt()更改了状态,因此在停止的行中再也看不到正确的if条件。CommittedIt()之后是否可能变为false?@IndritKello提交正是使单元格再次“干净”的原因。。。所以我要说的是完美的预期图像。我在屏幕上记录了正在发生的事情:为了进一步澄清,我按F11的速度太快了,但它的作用是:在离开函数之前,在结束括号之后,它返回到行dgv_configCH.committedtit…在我看来,它好像击中了该方法两次-第一次它以isDirty false退出,第二次它进入条件-对吗?如果是,是同一条线吗?如果没有,您可以尝试同步方法中的调用。