公共变量与函数的问题
在程序中,变量有时可以代替Function的函数来使用
比如:
已知 md5(str)是一个取MD5值的函数,并且是一个模块
因为需要,对STR我要取n次MD5
程序有两种做法:
1、Public Function MD5_n(STR As String) As String
Dim i As Integer
For i = 1 To N
STR = MD5(STR)
Next
MD5_n = STR
End Function
2、Public MD5_n As String
Public Sub sMD5_n(STR As String)
Dim i As Integer
For i = 1 To N
STR = MD5(STR)
Next
MD5_n = STR
End Sub
不知这两种方法何时适用?或者说哪种更好些?
我的理解是:
因公共变量占用内存,函数运行要费时间!所以:
当程序运行时,需进行MD5的STR取值固定,并且需要多次引用,那用第二种方法,因为第一种方法在每一次引用时都得进行N次MD5运算,但第二种仅在第一次需要时CALL SMD5_n,运算一次,以后不再需运算即可立即取得所需值!
当程序运行时,需进行MD5的STR取值不固定,每一次取值仅需要一次引用,那用第一种方法!
当程序运行时,需进行MD5的STR取值不固定,每一次取值都需要多次引用,那用第二种方法!在每一次取值变动时CALL SMD5_n以更新变量值!
当程序运行时,需进行MD5的STR取值固定,仅需要一次引用,那两种方法无差别!
不知是否如此?求解
[解决办法]
lz要干嘛?