一个比较困惑的问题,欢迎大家发言????

wcqun 2003-08-20 12:39:29
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
temp1:string;
end;

var
Form1: TForm1;
temp2:string;

implementation

{$R *.dfm}

end.


变量temp1t和temp2的区别在哪里,它们的作用域分别是什么范围?
...全文
34 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjqyb 2003-08-20
  • 打赏
  • 举报
回复
尽量少用全局变量,多用参数传递
某些地方实在要求效率就用几个全局变量
类的public变量也要少用,自己学习学习delphi的源码!!!
hiflower 2003-08-20
  • 打赏
  • 举报
回复
temp1 是 TForm1 的类的公有成员,只能通过 TForm1 的实例才能访问
temp2 是全局变量,应用程序的所有部分都可以访问到它

一个健壮的应用程序,应当尽可能少用全局变量
一个健壮的类,应当尽可能少访问全局变量,而是通过它的属性、方法与外界交互作用

建议你看看 Object Pascal 的书


nhdj 2003-08-20
  • 打赏
  • 举报
回复
同意楼上们说的,非常正确,结贴吧,别忘了给分
Venda 2003-08-20
  • 打赏
  • 举报
回复
to:chechy(简简单单的活),
这两种方式都不可取,请说说理由.
huojiehai 2003-08-20
  • 打赏
  • 举报
回复
temp2:string;只要你Uses这个单元的话就可以用。

temp1:string;只要你Uses这个单元,并创建了TForm1实例就可以用
zjqyb 2003-08-20
  • 打赏
  • 举报
回复
变量temp1t是限于在Tform1中访问
form1.templt;
temp2是全程变量可以给任何包含unit1单元的文件使用
chechy 2003-08-20
  • 打赏
  • 举报
回复
temp2是全局变量,在整个程序中有效。
temp1是TForm1中的公有变量,在TForm1的实例存在时有效。

从专业的角度看,上面两种方式都不可取。
wcqun 2003-08-20
  • 打赏
  • 举报
回复
private
temp3:string;
和 temp1的区别呢
xuejinlong 2003-08-20
  • 打赏
  • 举报
回复
看来楼主对OO还是不很了解。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧