我有两个功能处理相似,但不同的数据。正因为如此,两者之间使用了一些变量,有些则不是。声明变量并将它们传递给两个函数中的一个,或者在每个函数中声明变量? (可能VB.NET特定)
哪一个会更好?在功能
声明变量决定功能,将它们作为参数:
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。
谢谢!
你可以发布两个不同但功能相似的功能吗?我有一个关于如何更有效地整合这些内容的想法,但它高度依赖于细节,或者至少比这更容易解释。 –
@JoelCoehoorn不幸的是,我不能分享太多。 –
为什么你在方法1中声明a,b和c为ByRef?如果您想要在方法中更改它们,则无法在方法2中更改它们,因为您创建的本地实例在离开方法后无法再访问。 – Markus