vb.net中的If语句

vb.net中的If语句,vb.net,if-statement,Vb.net,If Statement,在If语句中,我有6个条件要测试。有没有办法缩小下面的代码 If (DataBinder.Eval(e.Item.DataItem, "strControlId")).ToString.Contains("_default") AndAlso (Convert.ToInt32(Request.QueryString("numFormNumber")) = 1) AndAlso Not (DataBinder.Eval(e.Item.DataItem, "strControlId")).ToStr

在If语句中,我有6个条件要测试。有没有办法缩小下面的代码

If (DataBinder.Eval(e.Item.DataItem, "strControlId")).ToString.Contains("_default") AndAlso (Convert.ToInt32(Request.QueryString("numFormNumber")) = 1) AndAlso Not (DataBinder.Eval(e.Item.DataItem, "strControlId")).ToString.Contains("RequiredOwner_default") AndAlso Not (DataBinder.Eval(e.Item.DataItem, "strControlId")).ToString.Contains("cmbConsequence_default") AndAlso Not (DataBinder.Eval(e.Item.DataItem, "strControlId")).ToString.Contains("cmbLikelihood_default") AndAlso Not (DataBinder.Eval(e.Item.DataItem, "strControlId")).ToString.Contains("cmbSeverity_default") Then 

End If

我对“if”条件的逻辑了解不够,但如果您将变量用于重复代码,则可以使代码更清晰

 Dim strControlId As String = DataBinder.Eval(item, "strControlId")).ToString

If (strControlId.Contains("_default")_
 AndAlso (Convert.ToInt32(Request.QueryString("numFormNumber")) = 1) _
AndAlso Not (strControlId.Contains("RequiredOwner_default")_
 AndAlso Not (strControlId.Contains("cmbConsequence_default") _
AndAlso Not (strControlId.Contains("cmbLikelihood_default")_
 AndAlso Not (strControlId.Contains("cmbSeverity_default") Then

代码也不干净。它的运行速度也更快,因为您只需计算
DataBinder.Eval(项,“strControlId”).ToString的值一次,而不是6次。