一段Delphi代码 大家帮我看下有问题吗?请指正 a:=Ta.Create(application); try a.ShowModal; finally a.Free; a:=nil; end;大家觉得这段代码有问题吗?帮忙翻译一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 a:=Ta.Create(application); //创建 try a.ShowModal; //show出来 finally a.Free; //释放 a:=nil; //将a变量置空,避免野指针 end; 1. 编码风格不符合Delphi编码规范2. 类命名不能表达类的用途 (Ta)3. 参数命名不能表达参数用途 (a)修改如下:a := Ta.Create(application); try a.ShowModal; finally a.Free; a := nil; end; 楼主的代码那样写没有什么问题1. Ta类能ShowModal,可见是一个创建类,最好创建给Ta的Parent2. a.free释放Ta的实例a占用的空间3. a := nil,是释放a的引用(这里可以理解成一个指针,指针本身也有空间占用)4. a := nil, 不写也没有关系,Delphi的编译器自动会将a的引用设置为nil (代码应该在一个方法内,方法运行结束后编译器做这个事情)5. 代码风格看来大家都不注意。代码风格问题需要引起重视,很多BUG和难以静态检查的错误都是由于代码风格引起的,特别是方法和函数内代码函数比较多、逻辑比较多的情况。 有个不算问题的问题就是把:a:=Ta.Create(application); 改成a:=Ta.Create(nil); 更好些,因为窗体是你自己释放的,如果参是appliction它会把自身实例加入appliction的Components列表里,当你Free掉的时候,它又会用appliction的Components里删掉。多做了无用的操作 15楼的说法有理。再有就是变量的取名上要有意义,不要 A B C D 之类。 奇怪的问题 如何终止启动某一个win2000的服务,谢谢! 急,,SQL SERVER 2000 数据库备份问题!! delphi7报表问题! 初来csdn,请教各位,在线等 请问Delete函数的用法是这样的吗?(在线等) Quick Report 为什么不能控制纸张的大小 在Delphi中怎样用ModalMaker建模? 我需要Delphi和SQL Server 2000的图片,用来美化我的论文! 关于mediaplayer控件的display? 求问如何用fastreport实现票据套打 对树如何记录data并取出,求思路
try
a.ShowModal; //show出来
finally
a.Free; //释放
a:=nil; //将a变量置空,避免野指针
end;
2. 类命名不能表达类的用途 (Ta)
3. 参数命名不能表达参数用途 (a)修改如下:a := Ta.Create(application);
try
a.ShowModal;
finally
a.Free;
a := nil;
end;
2. a.free释放Ta的实例a占用的空间
3. a := nil,是释放a的引用(这里可以理解成一个指针,指针本身也有空间占用)
4. a := nil, 不写也没有关系,Delphi的编译器自动会将a的引用设置为nil (代码应该在一个方法内,方法运行结束后编译器做这个事情)
5. 代码风格看来大家都不注意。代码风格问题需要引起重视,很多BUG和难以静态检查的错误都是由于代码风格引起的,特别是方法和函数内代码函数比较多、逻辑比较多的情况。
a:=Ta.Create(application);
改成
a:=Ta.Create(nil);
更好些,因为窗体是你自己释放的,如果参是appliction它会把自身实例加入appliction的Components列表里,当你Free掉的时候,它又会用appliction的Components里删掉。多做了无用的操作