有没有这种动态创建类对象的技术?假设现在有一个学生对象的属性如下:ID,Name,Sex,Age,Tel,Address问:能否
有没有这种动态创建类对象的技术? 假设现在有一个学生对象的属性如下: ID,Name,Sex,Age,Tel,Address 问:能否用运行时创建一个student对象,并让他有以上六个属性。 相当于做一个类工厂,根据条件生产出一个类来。 不是在工程里放一个student类,然后NEW一下。 不知道看贴的明白我的意思没?[解决办法] Type[解决办法] 没听明白 为什么要创建一个student对象却不能有student类.[解决办法] 相当于运行时动态地创建一个类。[解决办法] vb没有这个功能,你只能自己专门写代码来模拟。比如用recordset,等等。[解决办法] 如果你就要这个属性的话,type就可以完成阿。非要个类,还不时提前创建,何必跟自己过不去呢[解决办法]
探讨 如果你就要这个属性的话,type就可以完成阿。非要个类,还不时提前创建,何必跟自己过不去呢[解决办法] 探讨 假设现在有一个学生对象的属性如下: ID,Name,Sex,Age,Tel,Address 问:能否用运行时创建一个student对象,并让他有以上六个属性。 相当于做一个类工厂,根据条件生产出一个类来。 不是在工程里放一个student类,然后NEW一下。 不知道看贴的明白我的意思没?[解决办法] 应该不好实现,要么事先用type xxx自定义类型创建模型,或者就是用类。知道你的意思可能属性不确定,所以在一开始无法确定是吧?可以事先预留n个。
private type xxx
t1 as x
t2 as x
t3 as x
...
end type
然后自己确定那个属性对应着哪个。
另外一个方法可以用集合或者字典。
例如:
student("Name")=xxx
student("sex")=0
...
[解决办法] 明白lz的意思了。
lz你应该用C#4.0。
[解决办法] 涉及到了类工厂了,VB应该没有这个技术,在COM里的技术里应该可以.
[解决办法] 那就写个 student类不就行了吗~
[解决办法] 探讨 引用: 明白lz的意思了。lz你应该用C#4.0。 换C#就不用在这里的问了。 引用: 涉及到了类工厂了,VB应该没有这个技术,在COM里的技术里应该可以. 有点矛盾哦! VB就是在COM里啊。[解决办法] 能, 但vb实现和使用太麻烦, 就是一个call 地址的问题,vb不方便做
类包装的对象其实也就是c++指针概念发挥到了一个新的层次的产物
最直观的看待就是一个结构,type,加上些特别的预定义的内容,使他按照特定规则进行着貌似无限的扩展应用
实现起来就是:
1 申请一块内存
2 构造几个属性函数,要在模块里面写,或者直接用全局变量代替
3 对该对象的调用,以申请的内存地址为类似句柄一样的东西,实际就是this(me)指针
4 将所有该类函数,属性,等方法的函数地址和变量索引复制到 this+0,4,8,12。。 4整数倍位置
5 。。。 调用 调用函数A,可能的方法就是 call (This+4)
我一再对自己的文字表述水平表示怀疑。。。 希望lz能看懂则凑合看,看不懂就算了,我都快说迷糊了
[解决办法] 可以,使用CreateDispTypeInfo和CreateStdDispatch函数。
[解决办法] 做一个函数,按参数构造出一个类对象实例并返回该对象即可
[解决办法] 没有现成的方法,
楼上的兄弟们也出了不少点子,
总之就是绕着弯子模拟实现,数组,行集之类的都可以尝试看看