从Visual Basic中的结构中的函数返回值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Visual Basic中的结构中的函数返回值相关的知识,希望对你有一定的参考价值。
我希望帖子的标题不要太乱。我正在回顾上周的一些课程资料,关于这个特殊结构及其中的加法和减法函数,我只有一件事我不明白:
Structure ComNum
Dim Re As Double
Dim Im As Double
Function add(ByVal br As ComNum) As ComNum
add.Re = br.Re + Re
add.Im = br.Im + Im
End Function
Function subt(ByVal br As ComNum) As ComNum
subt.Re = br.Re - Re
subt.Im = br.Im - Im
End Function
End Structure
Sub Main()
Dim a, b, c As ComNum
a.Re = 2
a.Im = 3
b.Re = 4
b.Im = 5
c = a.add(b).add(b).subt(b)
Console.WriteLine("The second number added twice and subtracted once from the first number gives {0}+{1}i", c.Re, c.Im)
End Sub
现在,我理解函数的方式是,一旦从它返回任何内容,函数的执行就会在返回值的确切行停止,并且在执行之后不会执行任何操作。根据它,它应该添加实部并退出功能。
我知道我在这里错过了一件重要的事情,如果有人能向我解释,我会很感激。
答案
这种设置的方式是每次调用它们时都会创建一个新的空ComNum结构(根据函数名称命名为add或subt)。除非你提前手动返回它们,否则它将默认返回名为structure的函数。
Function add(ByVal br As ComNum) As ComNum
add.Re = br.Re + Re
add.Im = br.Im + Im
End Function
基本上相当于:
Dim add As New ComNum
add.Re = br.Re + Re
add.Im = br.Im + Im
Return add
虽然像Lars所指出的那样我不确定你为什么要这个功能而不是sub。现在使用它的方式设置需要你做这样的事情来获得加/减值,因为你需要捕获返回的ComNum对象。
Dim a As New ComNum With {.Im = 1, .Re = 1}
'Im = 6, Re = 6
a = a.add(New ComNum With {.Im = 5, .Re = 5})
做这样的事对我来说更有意义。
Structure ComNum
Dim Re As Double
Dim Im As Double
Sub add(ByVal br As ComNum)
Re += br.Re
Im += br.Im
End Sub
Sub subt(ByVal br As ComNum)
Re -= br.Re
Im -= br.Im
End Sub
End Structure
然后你可以这样调用它来更新结构而不必捕获返回的值。
a.add(New ComNum With {.Im = 5, .Re = 5})
编辑:现在知道如何执行练习我会为结构建议这样的事情:
Public Overrides Function ToString() As String
Return String.Format("Re: {0} Im: {1}", Re, Im)
End Function
然后你可以像这样调用.ToString()方法。虽然,只是一个想法。
Console.WriteLine("The second number added twice and subtracted once from the first number gives {0}", c.ToString())
以上是关于从Visual Basic中的结构中的函数返回值的主要内容,如果未能解决你的问题,请参考以下文章
在Visual Basic 6中,Environ()函数为CLIENTNAME返回null值