房天下 > 房天下问答 > 业主生活 > 其他
  • 麻烦高手解释下三个宏语句,谢谢。

    各位好,想麻烦高手解释下这几个宏语句,好吗?多谢。详情请看附件。

    提问者:京东之风

    发布于2008-07-05

共2个回答
  • 知书 丨Lv 3
    【回答】:对Optional这个关键字理解透了就会明白是怎么回事,其实这是在声明一个可选的传值变量,“Optional X3 As Single = 10”这句声明代码的意思是声明一个可选传值变量“X3”,如果调用时赋值的话,以调用时传递的值为准,如果缺省的话,就使用默认值“10”。这样这个结果就很正常了,第一次“Call hhh(C, a1, a2)”时,X3、X4的值都没有赋,那么过程会默认使用初始值,计算的结果就是1+2+10+20=33第二次“hhh(C, a1, a2, a3)”时,将a3的值传递给X3,而X4没有传值,就只能使用初始值“20”,于是计算结果是:1+2+3+20=26第三次“hhh(C, a1, a2, a3, a4)”,a3的值传递给了X3,a4的值传递给了X4,所以计算结果是1+2+3+4=10简而言之,有人给Optional关键字限定的变量赋值时,就用人家给的值,没人给就用自己的默认值。如附件中“Optional.xls”中所示,如果没有给出初始值,那么要进行预处理(即调用过程时没有传值,则视同传递了一个0值给可选参数),以防程序溢出。对于optional2的语句还是不太明白:为何第一次结果=33,第二次结果=26,第三次结果=10,能否再解释一下,可以吗?Public Sub hhh(Y As Single, X1 As Single, X2 As Single, Optional X3 As Single = 10, Optional X4 As Single = 20) Y = X1 + X2 + X3 + X4End SubPublic Sub main() Dim C As Single, a1 As Single, a2 As Single, a3 As Single, a4 As Single a1 = 1: a2 = 2 Call hhh(C, a1, a2) MsgBox "C=:" & C a1 = 1: a2 = 2: a3 = 3 Call hhh(C, a1, a2, a3) MsgBox "C=:" & C a1 = 1: a2 = 2: a3 = 3: a4 = 4 Call hhh(C, a1, a2, a3, a4) MsgBox "C=:" & C End Sub
    +10 2008-07-05 举报
  • 风儿往南吹 丨Lv 3
    最好是当面解答。现在,我觉得讲清楚了,其实可能还有没讲清楚的地方附件:新建文件夹.rar
    +10 2008-07-05 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。