C# and VB.Net out parameters
我有一个C中的项目,它利用了另一个用vb.net编写的项目。我现在可以修改这两个。
我在VB项目中有一个方法,比如:
1 2 3 | Public Sub MethodName(ByVal param1 As String, ByRef param2 As String) param2 = param1 + 1 End Sub |
我无法使用c中的out关键字调用此方法:
1 2 3 4 5 6 7 | public void CallOtherMethod() { string param1 ="test"; string param2; provider.AddTransaction(param1, out param2); } |
vb.net中的byref关键字不应该同时具有"ref"和"out"功能吗?
我应该和裁判一起去吗?
对于运行时,
1 2 | public void y(ref int a) public void z(out int a) |
变成
1 2 | .method public hidebysig instance void y(int32& a) .method public hidebysig instance void z([out] int32& a) |
这使得C编译器能够区分这两者,并添加
相反,vb中的
正如我的问答中提到的,您可以在参数定义上指定一个
使用
但是请阅读此详细说明:何时使用REF与OUT。
在vb(据我所知)中没有等同于
因为您将通过引用传递,所以被调用的函数将接收您的值,并且您需要将参数初始化,使其在内存中有一个地址。
编辑:
既然您可以同时编辑这两个文件,为什么不将