首页 新闻 搜索 专区 学院

C#中的ref传值在VB.NET中怎么写?

0
悬赏园豆:5 [已解决问题] 解决于 2011-10-11 14:55

在C#中这样一句话

new M100BuyCom.CommonFunc().GCode("OO", "Orders", ref DayCode)

 

在VB中我写成这样

New M100BuyCom.CommonFunc().GCode("SO_", "ShipOrder", ByRef DayCode As Short)

 

编译报错说ByRef 需要是一个表达式~什么意思?

适渊的主页 适渊 | 初学一级 | 园豆:2
提问于:2011-09-26 16:26
< >
分享
最佳答案
0

这个小弟有经验了.蛋疼的VB.NET

在VB里用

Foo(ByRef 参数 As 类型)

然后你在调用的时候不需要加As Short了

New M100BuyCom.CommonFunc().GCode("SO_", "ShipOrder", ByRef DayCode)

收获园豆:5
dotNetDR_ | 老鸟四级 |园豆:2058 | 2011-09-26 20:49

我一开始也是按照你这个写法~然后编译器就出现一条蓝色的线,说应为表达式

适渊 | 园豆:2 (初学一级) | 2011-09-27 09:54

然后编译也直接报错- -

适渊 | 园豆:2 (初学一级) | 2011-09-27 09:56

@适渊:

不好意思啊~~我给下代码给你.原来是不用加ByRef的.我上面的回复有错.

Module Module1

Sub Main()
Dim c1 = New Class_1()
c1.Id = 99

Console.WriteLine(c1.Id)

Foo(c1)

Console.WriteLine(c1.Id)

Console.ReadKey()

End Sub


Sub Foo(ByRef obj As Class_1)
obj = New Class_1()
obj.Id = 800
End Sub

End Module

Public Class Class_1
Public Id As Integer = 0
End Class

ByVal这个是可以改值~但不能把引用改掉.

我把我的宝贝给你吧.....

http://msdn.microsoft.com/zh-cn/library/dd409611.aspx
希望你能喜欢~

dotNetDR_ | 园豆:2058 (老鸟四级) | 2011-09-28 08:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册