2016-04-13 3 views
-5

В моем утверждении If у меня есть 6 условий для проверки. Есть ли способ минимизировать этот код ниже?Если заявление в vb.net

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 

ответ

1

Я достаточно о логике вы не знаю, «если» состояние, но вы можете сделать код более чистым, если вы будете использовать переменные для повторяющегося кода.

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 
+0

Не также код 'более чистый'. Он также работает ** быстрее **, потому что вы оцениваете значение 'DataBinder.Eval (item," strControlId ")). ToString' ** только один раз **, а не ** 6 раз **. –

Смежные вопросы