在标准模块中用Public语句声明的类型在类模块里无法使用(加急~)我在标准模块里用Public语句声明了一个名为
在标准模块中用Public语句声明的类型在类模块里无法使用(加急~)
我在标准模块里用Public语句声明了一个名为MemTab的类型(Type语句),在类模块的一个过程里,有一个参数是这个类型的,但是已运行VB就显示:
“只有在公共对象模块中定义的公共用户定义类型可以作为参数,类模块的公共过程返回类型,公共用户定义类型的字段使用。”
为什么会这样,我的程序有哪点不满足了???(加急啊)
[解决办法]
无法解决, 因为这个编译错误信息提示VB的模块(Module)是私有性的(Private), 而且无法设置! 所以在这种情况下应使用类(Class)代替Type
[解决办法]
只有在公共对象模块中定义的公共用户定义类型可以....
而问题在于模块不是对象.
所以如果你非要想在你的类过程中这么引用参数的话, 你必须把这个"自定义类型"写成单独一个类的形式.
比如原来的定义:
'Module1
PUBLIC TYPE AAA
AA AS LONG
BB AS INTEGER
END TYPE
得写成:
'Class1
public AA AS LONG
PUBLIC BB AS INTEGER
'没有END CLASS
引用这个东西的时候也得老老实实按照类来new一个实例:
DIM AAAA AS NEW AA
就这样
不过作为参数的话, 应该是BYREF引用, 而不能BYVAL了
[解决办法]
http://topic.csdn.net/u/20080413/16/afcd5e50-5109-4113-bb46-827f80f0e070.html
