这是关于面向对象的一般性问题,特别是在.NET(或任何其他框架或语言)中重载函数。我正在寻找一个有很多重复代码的应用程序。例如,看看以下函数:
Public Function Test(ByVal Test1 As String)
//code that is specifically relevant to Test1 variable
End Function
Public Function Test (ByVal Test1 As String, ByVal Test2 As String)
//code that is specifically relevant to Test1 variable
//code that is specifically relevant to Test2 variable
End Function
我认为最好的做法是将://代码与Test1变量在一个单独的函数中特别相关,因为它在两个函数中都很常见。是这样的吗?我一直以为重复的代码是个坏主意。
答案 0 :(得分:2)
这不是更好:
Public Function Test(ByVal Test1 As String)
//code that is specifically relevant to Test1 variable
End Function
Public Function Test (ByVal Test1 As String, ByVal Test2 As String)
Test(Test1)
//code that is specifically relevant to Test2 variable
End Function
理想情况下,重载应该是为原始函数添加附加功能,但保留原始行为,以防您在代码中的其他位置使用它。
答案 1 :(得分:1)
通常情况下,如果可能的话,我会做这样的事情:
Public Function Test(ByVal Test1 As String)
Test(Test1, Nothing)
End Function
Public Function Test (ByVal Test1 As String, ByVal Test2 As String)
' code that is specifically relevant to Test1 variable
If Test2 IsNot Nothing Then
' code that is specifically relevant to Test2 variable
End If
End Function