VB funtion 返回值

来源:百度知道 编辑:UC知道 时间:2024/06/01 04:52:56
Function DenL(T As Double, Psig As Double) As Double
Dim h As Double, P As Double
P = Psig + 14.696
If (T <= 662#) Then
Call DRegion1(T, P, DenL)
Else
Call Region3(4, T, P, DenL, h)
End If
End Function

这个funtion返回的是什么值?
感谢 carp129 !
我想再问下

如果默认返回是0的话
Call DRegion1(T, P, DenL) 这里DenL传的参数也是0 吧?

以下是这个方法
Sub DRegion1(T As Double, P As Double, DL1 As Double)
Dim A0 As Double, A(22) As Double, AA(12) As Double, RT As Double, RP As Double, y As Double, z As Double
//.....
//中间省略
//......
Y5 = 3# * A(21) * (AA(12) - RT) * RP * RP
Y6 = 4# * A(22) * RT ^ (-20) * RP ^ 3
RV = Y1 + Y2 - Y3 - Y4 + Y5 + Y6
DL1 = 1# / RV / 0.00317 / 16.01846
End Sub

这第三个参数能传吗?

【回补充】:
函数 Function DenL(T As Double, Psig As Double) As Double 是有参数的,而

Call DRegion1(T, P, DenL) 中的“DenL”貌似是个变量,如果“DenL”是个函数的话,应该这样写才对: Call DRegion1(T, P, DenL(a,b))
其中的“a、b”为double型的变量或常量

如果写成“Call DRegion1(T, P, DenL(a,b))”,也相当于 Call DRegion1(T, P, 0),因为在 函数 DRegion1 的定义中没有给此函数的返回值赋值。

我现在没装VB环境,都是从理论分析的,你可以做几个实验看看那个 DRegion1 函数这么定义是否会返回“0”,或者提示编译错误

在VB中无返回值的函数(相当于C语言中的“void”)用“Sub”定义,有返回值的函数用“Function”定义

=====================================================

定义的函数是double类型的,但是在函数体内没有给返回值赋值,按理说应该返回默认的“0”

如果这个函数有返回值,在函数体内应该有赋值语句的:

Function DenL(T As Double, Psig As Double) As Double
Dim h As Double, P As Double
P = Psig + 14.696
If (T <= 662#) Then
Call DRegion1(T, P, DenL)
Else
Call Region3(4, T, P, DenL, h)
End If

DenL=1.23 '少了这一个赋值的环节(例:给此函数的返回值为1.23)

End Function