VB funtion 返回值
来源:百度知道 编辑:UC知道 时间:2024/06/01 04:52:56
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