У меня есть большое количество текстовых полей в приложении, содержащихся в панели. Текстовые поля сгруппированы по 4. Пример: l1, w1, q1, p1, l2, w2, q2, p2, .... Код внутри работает отлично, но занимает много времени при компиляции.код сокращения для большого количества текстовых полей
If l24.Text <> "" And w24.Text <> "" And q24.Text <> "" And p24.Text <> "" Then
counter += 1
Dim a, b, c, d As Integer
a = Convert.ToInt16(p24.Text.Substring(0, 1))
b = Convert.ToInt16(p24.Text.Substring(1, 1))
c = Convert.ToInt16(p24.Text.Substring(2, 1))
d = Convert.ToInt16(p24.Text.Substring(3, 1))
If a = 4 Or a = 5 Or b = 4 Or b = 5 Or c = 4 Or c = 5 Or d = 4 Or d = 5 Then
forpress += (Convert.ToInt16(l24.Text) + pressing) * (Convert.ToInt16(w24.Text) + pressing) * (Convert.ToInt16(q24.Text))
End If
Select Case a
Case 1
half += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
End Select
Select Case b
Case 1
half += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(l24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(l24.Text) * Convert.ToInt16(q24.Text)
End Select
Select Case c
Case 1
half += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
End Select
Select Case d
Case 1
half += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ehalf += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 2
two += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
etwo += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 3
three += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
ethree += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 4
four += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efour += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
Case 5
five += (Convert.ToInt16(w24.Text) + add) * Convert.ToInt16(q24.Text)
efive += Convert.ToInt16(w24.Text) * Convert.ToInt16(q24.Text)
End Select
End If
Это пример для одного набора текстовых (L24, W24, Q24, p24). Как я могу присоединиться ко всем наборам текстовых полей, чтобы свести к минимуму мои строки кода и время компиляции? Любая помощь действительно оценена
Где находится «Дело»? И почему у вас есть это огромное количество переменных? Вы слышали о 'List (Of T)' s? – Clijsters
Нет, еще нет. Но все равно. я буду искать его – Jad
Возможно ли использовать многомерные массивы? Они хорошо работают для таких ситуаций, как ваши. (В частности, для вас это 2D-массивы). https://msdn.microsoft.com/en-us/library/d2de1t93(v=vs.90).aspx – user7777777