VB.NET是否有一个与C# out
函数参数直接等效的函数参数,其中传递给函数的变量不需要初始化?
发布于 2010-12-05 20:28:40
不,在VB中没有out
关键字的等价物。
但是,VB确实会自动初始化方法中的所有局部变量,因此您可以使用ByRef
,而无需首先显式初始化变量。
示例:
Sub Main()
Dim y As Integer
Test(y)
End Sub
Sub Test(ByRef x As Integer)
x = 42
End Sub
(如果检查框架中的代码(例如Double.TryParse),您可能会看到<OutAttribute>
添加到参数中,但这仅在为COM互操作或平台调用封送调用时才会有所不同。)
发布于 2017-03-25 20:25:24
我在VB.NET中遇到了这样的问题:我调用了一个"by ref“函数,该函数回传了一个数组。
尽管编译器将其标记为警告,但它没有问题。修复方法非常简单,而且可能是很好的编程实践。
我变了
Dim m_arr_values() as Integer
fnRetArray(m_arr_values)
至
' Even though 'Nothing' is the default value, setting it
' stops the compiler complaining.
Dim m_arr_values() as Integer = Nothing
fnRetArray(m_arr_values)
如果变量名是描述性的,它在编码时也会有所帮助。
Sub fnCreatePalette(ByRef arr_in_pal() As color, ByRef arr_out_pal() as uinteger)
...
End Sub
发布于 2012-09-04 18:09:18
您可以在VB.NET中使用按引用传递方法。
您需要在C#中使用Out参数机制,因为它不允许您在未初始化变量的情况下使用任何变量。
VB.NET不需要特殊的关键字,因为它自己会自动完成这个任务。
只需使用ByRef即可。
https://stackoverflow.com/questions/4358742
复制相似问题