递归火山软件开发平台

标题: 关于启动类里的变量有什么讲究吗? [打印本页]

作者: xuwanbin    时间: 2023-4-2 09:37
标题: 关于启动类里的变量有什么讲究吗?
1.启动类里的变量是不是不会释放,关闭程序才会释放吗?

2.启动类里设置的变量是不是和静态变量一样?


3.启动类.测试变量 和 取程序().测试变量 有什么不一样吗?

4.别的窗口下有静态变量,窗口销毁后也没有释放吧?是不是放到启动类里更好一些?

5.别的窗口有公开的变量但是不设置静态,窗口关闭后公开的变量会释放吗?

作者: hcwanz    时间: 2023-4-2 09:50
1.启动类的成员变量在程序结束后释放,局部变量在对应方法结束后释放。
2.应该是一样的,都是在程序结束后释放。
3.启动类.测试变量 是非实例化的变量。取程序().测试变量 是实例化的变量。
4.看情况呗,你觉得放启动类好管理,就放启动类;觉得放普通类好管理就放普通类
5.公开变量和非公开变量的区别在调用上,释放的时机是一样的。
作者: 创世魂    时间: 2023-4-2 09:54
别的窗口关闭变量会不会释放取决于这个窗口是不是对话框窗口,如果不是对话框窗口是不会自动释放的。

因为 普通窗口 的变量为成员变量, 而成员变量的释放需要主窗口关闭后才会释放,所以就会导致这个变量如果是一个窗口,即便是这个窗口被关闭也不会被释放。

火山里面的很多对象都存在类似于“释放”的方法,例如:记录集有,关闭记录集的方法,手动调用一下。


作者: Xelloss0618    时间: 2023-4-2 13:27
补充几点:
2. 启动类全局实例的成员变量,生命周期和静态变量一样,都是结束程序后释放,但不能说一样,因为还有静态方法只能调用静态变量这种差别。

3. 启动类实际上是一个对象类型,程序启动时会自动创建一个启动类的全局实例,「取程序」取的是后者。
主要看测试变量是不是静态,如果是静态,那就用 启动类.测试变量;不是静态,那就用 取程序().测试变量
这两种写法不能混用,否则会报错。

4. 类的静态变量都是全局唯一的,直到程序结束才会释放。
如果静态变量只在一个窗口里使用,那就定义在这个窗口里。
会被多个窗口调用的话,你觉得哪里方便就放哪里,也没什么区别。

5. 这要看窗口类实例本身会不会被释放,因为有时只是关闭了窗口,并不一定会销毁窗口类的实例。
比如启动类的成员变量窗口,在程序结束时才释放。
作者: xuwanbin    时间: 2023-4-2 13:43
:噜阿噜感谢各位回答





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4