【发布时间】:2017-05-21 22:11:59
【问题描述】:
私有子程序是否可以在从主程序接收到值后与主程序在同一模块中,创建新变量并将其传递回主程序?
这是我想要做的,但我遇到了一些困难。 例如,在下面的 testSUB 中,我更改了字符串。我可以将 extraSTRING 和 newSTRING 传回 main 吗?任何示例都会有所帮助。
Module module1
Sub main()
Dim l As String
Dim I As Long = 1
Dim A As String
testsub(l, A, I)
End Sub
Private Sub testSub(l As String, A As String, I As Long)
Dim extraSTRING As String = "extraTEXT"
Dim newSTRING As String = l & extraSTRING
End Sub
End Module
【问题讨论】:
-
在这个例子中你不清楚你在追求什么。但是,您可以将 testSub 变成一个函数并以这种方式返回一些东西。或者您可以使用ByRef 传递的参数。
-
@Jinx88909 :在我看来这就是他想要的。你应该用这两个选项写一个答案。
-
@VisualVincent 作为答案发布。在我的手机上,所以希望我没有犯任何错误。没那么容易:)
-
当子例程接受参数时,它可以通过 2 种方式中的 1 种方式进行 - Byref 或 byval。 Byval 是默认值,意味着您传递的值将被复制到内存中。 Byref 表示要传递一个内存地址或指针。当子例程作用于参考值时,调用者会固有地注意到对该值的修改。 @Jinx88909 已经回答了你的问题。或者,您可以简单地编写一个函数而不是一个子函数。 Private 声明意味着它仅在该模块内可用。
-
@Jinx88909 :嘿,我几乎所有的答案都是用手机写的。 ;)
标签: string vb.net module parameter-passing main