我有以下代码,我的老板要我减少代码行来做这个工作。在这个vb.net代码中可以减少代码行吗?
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调用一个新的函数来实现代码resue吗?
我可以在可能的新函数中引入多态吗?
任何性能改进都非常值得欢迎!
请帮忙!!
“我的雇主希望我减少代码以完成这项工作。” - 为什么? –
嗯,我不知道!他认为我做了一个非常糟糕的实现,所以如果我减少LOC,我会改进逻辑。 –
改善逻辑与减少代码行数有些不同(也是更重要的)要求(尽管有时是相关的) –