Yog*_*rtu 31 vb.net visual-studio-2010 byref byval
我刚刚安装了Visual Studio 2010 Service Pack(在Windows Update上提出),我可以在"intellisense"上看到一个新功能,这意味着当我写一个Function或Sub在VB.NET中它不会自动完成参数ByRef或者ByVal.. .
1)无论如何,我可以将此选项配置回原来的状态吗?
2)如果我没有指定ByX,默认使用哪一个?(好像总是这样ByRef)
Tim*_*ter 44
这篇文章似乎涵盖了你的问题:
所以不,没有办法得到旧的行为.从现在开始ByVal是默认值(以前的版本),它不会自动添加到方法参数中.
在我看来,这是一个很好的决定,因为它使VB.NET与C#更加一致,并避免了不必要的"噪音"(它已经足够冗长).
旧行为:
Private Sub test(ByVal test As String)
End Sub
Run Code Online (Sandbox Code Playgroud)
新的行为
Private Sub test(test As String)
End Sub
Run Code Online (Sandbox Code Playgroud)
Jay*_*Jay 17
Tim直接覆盖了您的要求,但要注意的是,任何引用类型变量(如用户定义的类,即使通过值传递)也允许您对保留的实例属性等进行更改.但是它不允许您更改整个对象.这可能就是为什么你似乎通过引用默认为什么
Public Sub (Something As WhateverClass)
Something = New WhateverClass 'will result in no changes when outside this method
Something.Property1 = "Test" 'will result in an updated property when outside this method
End Sub
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
引用类型的值是指向内存中其他位置的数据的指针.这意味着当您按值传递引用类型时,过程代码具有指向基础元素数据的指针,即使它无法访问基础元素本身.例如,如果元素是数组变量,则过程代码本身无权访问变量,但它可以访问数组成员.