我有两个处理相似但不同数据的函数。正因为如此,有一些变量在两者之间使用,而另一些则没有。
其中哪一个是更好的做法?
在决定函数的函数中声明变量并将它们作为参数传递:
Private Sub ProcessData(ByVal x)
Dim a = 1, b = "a", c = new SomeObject(x)
If condition Then
ProcessDataA(x, a, b, c)
Else
ProcessDataB(x, a, b, c)
End If
End Sub
Private Sub ProcessDataA(ByVal x, ByVal a, ByVal b, ByVal c)
' code
End Sub
Private Sub ProcessDataB(ByVal x, ByVal a, ByVal b, ByVal c)
' code
End Sub
还是不传递参数而只实例化变量两次?:
Private Sub ProcessData(ByVal x)
If condition Then
ProcessDataA(x)
Else
ProcessDataB(x)
End If
End Sub
Private Sub ProcessDataA(ByVal x)
Dim a = 1, b = "a", c = new SomeObject(x)
' code
End Sub
Private Sub ProcessDataB(ByVal x)
Dim a = 1, b = "a", c = new SomeObject(x)
' code
End Sub
一方面,第一种方法可以防止代码重复,但我不确定编译器/解释器如何处理它,或者这种方法是否有一些我不知道的开销。
如果答案因语言/编译器而异,我对 .NET 框架或 VB.NET 感到特别好奇。
谢谢!