【发布时间】:2019-05-21 09:35:45
【问题描述】:
我希望帖子的标题不要太乱。我正在复习上周的一些课程材料,关于这个特定的结构和其中的加减函数,我只有一件事不明白:
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
现在,我理解函数的方式是,一旦从它返回任何内容,函数的执行就会停止在返回值的确切行处,并且在执行后什么也没有。据此,它应该添加实部并退出函数。
我知道我在这里遗漏了一个关键的东西,如果有人可以向我解释这一点,我将不胜感激。
【问题讨论】:
-
很不清楚你被困在什么地方。没有什么会提前退出函数。这看起来几乎像 VB6 语法。我“猜测”你希望这是一个 void,而不是一个函数,
Re += br.Re等。不知道。 -
顺便说一句,我会警告不要使用可变结构。他们往往非常难以推理。有时会在您意想不到的时候制作副本。
-
@Craig 我会牢记这一点,谢谢。但这是学校里的一项特殊练习,所以它必须是这样的:)
标签: vb.net function data-structures procedure