我来自 C# 背景,所以我还不太了解我的 VB。
我在整个代码库中都遇到过这种做法,而且 从未用于链接 。
我想知道这可能会产生什么性能后果(如果有的话)。
Public Function Save(ByRef myObj As MyBusinessObject) As MyBusinessObject
'Do save stuff
'Return object we just saved
Return myObj
End Function
'usage
myObject = Save(myObject)
最佳答案
您正在向变量添加额外的赋值,但这并不会真正导致性能问题。它实际上只是在做这个 C#:
public MyBusinessObject Save(MyBusinessObject myObj)
{
// Do save stuff
return myObj;
}
然后调用:
myObj = Save(myObj);
这会重新设置变量引用,但将其指向内存中的同一个对象,因此影响不大。但是,对于实例方法来说,这是相当标准的做法,因为它允许链接(您提到过),即:
myObj.Load(...).DoSomething().Save()
由于您没有链接,我怀疑这是由在调用方法时没有正确理解对象引用如何工作的人完成的。
关于vb.net - VB - 这种有问题的做法的性能后果是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7235272/