У меня есть следующий код, мой работодатель хочет, чтобы я сократил строки кода , чтобы выполнить работу.
Private Function getClientSheetNames(Optional ByVal type As String = "all") As List(Of String)
If type = "extra" Then
Return clientExtraSheetNames
End If
Dim prev, curr As New List(Of String)
For Each name In clientMonthlySheetNames
curr.Add(name + " (" + currMonth + ")")
Next name
If type = "currMonth" Then
Return curr
End If
For i = 1 To clientMonthlySheetNames.Count - 1
prev.Add(clientMonthlySheetNames(i) + " (" + prevMonth + ")")
Next
If type = "prevMonth" Then
Return prev
End If
If type = "monthly" Then
Return curr.Union(prev).ToList
End If
Return clientExtraSheetNames.Union(curr.Union(prev)).ToList
End Function
Private Function getDevSheetNames(Optional ByVal type As String = "all") As List(Of String)
If type = "extra" Then
Return devExtraSheetNames
End If
Dim sheetNames, prev, curr As New List(Of String)
For Each name In devMonthlySheetNames
curr.Add(name + " (" + currMonth + ")")
Next name
If type = "currMonth" Then
Return curr
End If
For Each name In devMonthlySheetNames
prev.Add(name + " (" + prevMonth + ")")
Next name
If type = "prevMonth" Then
Return prev
End If
If type = "monthly" Then
Return curr.Union(prev).ToList
End If
sheetNames.Add(devExtraSheetNames(0))
sheetNames.AddRange(curr.Union(prev).ToList)
sheetNames.AddRange(devExtraSheetNames.GetRange(1, devExtraSheetNames.Count - 1))
Return sheetNames
End Function
Я не могу понять, как я могу сократитьлинии и имеют одинаковую функциональность!
Есть ли какая-либо конструкция vb.net, которая может уменьшить loc за счет лучшей реализации?
Могу ли я получить новыйфункция, которая будет вызываться из getClientSheetNames и getDevSheetNames, которая может реализовать восстановление кода?
Могу ли я ввести полиморфизм в возможную новую функцию?
Добро пожаловать!
Пожалуйста, помогите !!