我的代码中有以下功能。
Private Function MedTuboFuncPCT() As List(Of Decimal)
Dim a, Div, MedTubo1, DivExa, Div1, Div2, Div3, Div4, Div5 As Decimal
Dim b, MedTubo2, Div11, Div22, Div33, Div44, Div55 As Decimal
a = Me.Controls("MeasurePCT" & ContadorGlobal).Text
Div = 2
If a > 6029 Then
Te180 = Te180 + 1
b = (a + 21) / 2
Div = Div + 1
If b / Div <= LimiteGlobalSeparador Then
DivExa = b / Div
Div1 = DivExa - 19
Div2 = DivExa
Div3 = DivExa - 30.5
MedTubo1 = Div1 + Div2 + Div3
Div11 = DivExa - 30.5
Div22 = DivExa
Div33 = DivExa - 31
MedTubo2 = Div11 + Div22 + Div33
Else
Div = Div + 1
If b / Div <= LimiteGlobalSeparador Then
DivExa = b / Div
Div1 = DivExa - 19
Div2 = DivExa
Div3 = DivExa
Div4 = DivExa - 30.5
MedTubo1 = Div1 + Div2 + Div3 + Div4
Div11 = DivExa - 30.5
Div22 = DivExa
Div33 = DivExa
Div44 = DivExa - 31
MedTubo2 = Div11 + Div22 + Div33 + Div44
Else
Div = Div + 1
If b / Div <= LimiteGlobalSeparador Then
DivExa = b / Div
Div1 = DivExa - 19
Div2 = DivExa
Div3 = DivExa
Div4 = DivExa
Div5 = DivExa - 30.5
MedTubo1 = Div1 + Div2 + Div3 + Div4 + Div5
Div11 = DivExa - 30.5
Div22 = DivExa
Div33 = DivExa
Div44 = DivExa
Div55 = DivExa - 31
MedTubo2 = Div11 + Div22 + Div33 + Div44 + Div55
End If
End If
End If
Else
If a <= LimiteGlobalSeparador Then
MedTubo1 = a - 29
Else
If a / Div <= LimiteGlobalSeparador Then
DivExa = (a + 21) / Div
Div1 = DivExa - 19
Div2 = DivExa - 31
MedTubo1 = Div1 + Div2
Else
Div = Div + 1
If a / Div <= LimiteGlobalSeparador Then
DivExa = (a + 21) / Div
Div1 = DivExa - 19
Div2 = DivExa
Div3 = DivExa - 31
MedTubo1 = Div1 + Div2 + Div3
Else
Div = Div + 1
If a / Div <= LimiteGlobalSeparador Then
DivExa = (a + 21) / Div
Div1 = DivExa - 19
Div2 = DivExa
Div3 = DivExa
Div4 = DivExa - 31
MedTubo1 = Div1 + Div2 + Div3 + Div4
Else
Div = Div + 1
If a / Div <= LimiteGlobalSeparador Then
DivExa = (a + 21) / Div
Div1 = DivExa - 19
Div2 = DivExa
Div3 = DivExa
Div4 = DivExa
Div5 = DivExa - 31
MedTubo1 = Div1 + Div2 + Div3 + Div4 + Div5
End If
End If
End If
End If
End If
End If
Dim iList As New List(Of Decimal)
iList.Add(MedTubo1)
iList.Add(Div1)
iList.Add(Div2)
iList.Add(Div3)
iList.Add(Div4)
iList.Add(Div5)
If a > 6029 Then
iList.Add(MedTubo2)
iList.Add(Div11)
iList.Add(Div22)
iList.Add(Div33)
iList.Add(Div44)
iList.Add(Div55)
End If
If Div3 = 0 Then
SoporteTT90 = SoporteTT90 + 1
Else
If Div4 = 0 Then
SoporteTT90 = SoporteTT90 + 2
Else
If Div5 = 0 Then
SoporteTT90 = SoporteTT90 + 3
Else
SoporteTT90 = SoporteTT90 + 4
End If
End If
End If
If Div33 = 0 Then
SoporteTT90 = SoporteTT90 + 1
Else
If Div44 = 0 Then
SoporteTT90 = SoporteTT90 + 2
Else
If Div55 = 0 Then
SoporteTT90 = SoporteTT90 + 3
Else
SoporteTT90 = SoporteTT90 + 4
End If
End If
End If
Return iList
End Function
代码的最后一部分是:
If Div3 = 0 Then
SoporteTT90 = SoporteTT90 + 1
Else
If Div4 = 0 Then
SoporteTT90 = SoporteTT90 + 2
Else
If Div5 = 0 Then
SoporteTT90 = SoporteTT90 + 3
Else
SoporteTT90 = SoporteTT90 + 4
End If
End If
End If
If Div33 = 0 Then
SoporteTT90 = SoporteTT90 + 1
Else
If Div44 = 0 Then
SoporteTT90 = SoporteTT90 + 2
Else
If Div55 = 0 Then
SoporteTT90 = SoporteTT90 + 3
Else
SoporteTT90 = SoporteTT90 + 4
End If
End If
End If
最后一部分,在不同的功能中重复了很多。有没有办法为该代码创建一个函数?我面临的问题是,当我尝试创建一个新函数时,我没有Div1,Div2,Div3等的值,因为它们是我的主要功能的一部分。如何创建可以使用这些值的函数,或者如何获得重新创建该代码的函数。希望我足够清楚。提前谢谢!