vb.net – 默认情况下如何将参数传递给VB函数
假设我有以下功能:
Function myFunction(j As Integer) As Double myFunction = 3.87 * j Exit Function End Function j是作为值ByVal还是通过引用ByRef传递的? 或者它取决于数据类型?如果我将一个复杂的对象作为值传递怎么办? 提前致谢! 解决方法
除非明确指定,否则传递ByVal的参数.有关详细信息,请参阅
Passing Arguments by Value and by Reference,其中说明:
至于:
这很好,只要“复杂对象”是一个类(引用类型),你就不会进行大量的复制.这是因为对对象实例的引用是通过值(ByVal)传递的,这意味着您只复制单个引用,即使该类非常大. 但是,如果复杂对象是结构(值类型),则在调用方法时将导致复制对象.这是顺便说一下,为什么像XNA这样的一些框架提供了许多方法的替代版本(如Matrix.Multiply),它们可以选择传递ByRef – 这可以避免昂贵的Matrix结构副本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |