有没有VB.NET版本的C#输出参数?
没有一个构造方式能够允许传递未初始化的变量到方法中而不会出现警告,但是,正如我在我的问题和回答中提到的那样,在ByRef
参数定义中指定一个
属性,即使VB会忽略它,但C#会将其视为一个out
参数。
因此,我会将引用变量初始化为Nothing
,并指定
来表示意图(如果C#用户需要访问您的方法,这将起作用)。
如果您认为您知道当您打算访问未分配引用变量中的默认Nothing
时,您可以将“警告配置”“使用变量之前的赋值”设置为项目级别的“无”(项目属性>编译,您可能需要将配置设置为“所有配置”才能更改此设置),或者,在VS2015(VB.NET 14)中,您可以使用#Disable Warning BC42030
。
不,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),您可能会看到
添加到参数中,但只有在调用被COM互操作或平台调用封送时才会有区别。)