在VB里定义结构常量

本文是这个帖子讨论的小结,感谢chenjl1031Tiger_Zhao的指点。

 

话说,我的函数参数有将近十个,挨个赋值容易出错,而且看起来很乱,所以想定义成结构体,好维护一些。另外,我想给这个结构体赋缺省值。在函数里进一步判断,如果是缺省值,就不做事,如果不是,才做事。VB只能对变体类型用ismissing函数,所以,我用这个办法来模拟变通ismissing的效果。所以我想定义一个结构常量,用来给这个结构参数赋缺省值。比如:

 

但是,讨论下来,发现这还真是个难题。

 

首先,常数的数据类型可以是:Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String 或 Variant。常量不能是结构

 

其次,可选参数的数据类型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)、Object 或 Variant。如果参数不是 Optional,则也可以是用户定义类型,或对象类型。也就是说,可选参数也不能是结构

 

chenjl1031帮助我弄清楚上面两点之后,我就准备放弃结构,改用类了。我是这么做的。我直接在类的initialize里初始化变量。函数中判断类参数如果是nothing,就new一个(就会自动调用initialize),函数结尾再set nothing.

 

之后无所不能的Tiger_Zhao又出了个特棒的主意,他就用结构,呵呵。看下面的代码:

 

其实,用类也可以用全局的 Property Get 做初始化。作为 optional 参数,函数中检查参数是否为 nothing,是的话就用属性 cc 替代。不过的话,在 initialize 中自动是最正规的做法。

 

 

 

 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值