怎樣才能使參數即可傳入又可傳出 函數需要一參數即可傳入又可傳出,請指教... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在参数前面加上 var 关键字,使它成为实参 function XXX(var a:string): string; var 和outfunction funname(var Value: Integer): Integer;function funname(out Value: Integer): Integer;2者有点区别 使用var的参数传递方式。不能使用out的参数传递方式。 在Delphi版本中使用的Object Pascal总共有三种参数传递的方式:(A) procedure Proc(const para: DataType);(B) procedure Proc(para: DataType);(C) procedure Proc(var para: DataType);(以上DataType为简单类型,不是类类型)采用(A)的方式,则参数para仅仅是传入一个值,参数para在过程(函数)Proc内是不能改变值的,更不能携带返回值。采用(B)的方式,参数para也是传入一个值,但这个参数在Proc过程(函数)体内是可以改变值的,不过他不会返回任何改变的值。(A)、(B)全部是值参传递。采用(C)的方式,则是参数的引用传递方式,它可以在过程(函数)Proc体内改变它的值,并且返回给调用到地方。//------------------------------------------------------------------如果上述DataType是类类型的,那么你几乎看不到象如下的用法:procedure Proc(const AClass: ClassType);因为这样做几乎没有意义,你仍然可以修改AClass的字段、属性,并成功的返回这些改变,因为AClass本质上是指针类型的;另外,绝大多数情况下,我们是不会改变AClass的值的。当然,如果你使用了const,则结果会和(A)中的原则一样的;如果使用(B)或(C)的原则,那么结果采用(B)、(C)中阐述的原则。最好不要使用var关键字,如果控制不好,这会产生严重的问题!//------------------------------------------------------------------置于out关键字,这是Delphi为了使用接口的特性而加入的符和IDL(Interface Definition Language),这个关键字在编写COM、CORBA时非常又用。 如何确定一个类对被构造 mmtools控件问题! 苏州的DELPHI程序员请进来!! 我的IC卡,只能读不能写是什么原因呀 没事做了,散分. 怎末做office2000风格菜单? 怎么样识别用户按下“CTRL”+“V”键,并触发事件发生 请问在大富翁论坛中,在哪里可以输入激活码,进入论坛后,老说我没进,红灯一直亮 大家说程序也要爱情吗 dbGrid的onDrawColumnCell事件的问题。快来拿分! 哪里有 Delphi 6 的电子版教程,急用 求教高手一个简单的系统问题?
function funname(var Value: Integer): Integer;function funname(out Value: Integer): Integer;2者有点区别
不能使用out的参数传递方式。
(A) procedure Proc(const para: DataType);
(B) procedure Proc(para: DataType);
(C) procedure Proc(var para: DataType);
(以上DataType为简单类型,不是类类型)采用(A)的方式,则参数para仅仅是传入一个值,参数para在过程(函数)Proc内是不能改变值的,更不能携带返回值。
采用(B)的方式,参数para也是传入一个值,但这个参数在Proc过程(函数)体内是可以改变值的,不过他不会返回任何改变的值。
(A)、(B)全部是值参传递。采用(C)的方式,则是参数的引用传递方式,它可以在过程(函数)Proc体内改变它的值,并且返回给调用到地方。//------------------------------------------------------------------
如果上述DataType是类类型的,那么你几乎看不到象如下的用法:
procedure Proc(const AClass: ClassType);因为这样做几乎没有意义,你仍然可以修改AClass的字段、属性,并成功的返回这些改变,因为AClass本质上是指针类型的;另外,绝大多数情况下,我们是不会改变AClass的值的。
当然,如果你使用了const,则结果会和(A)中的原则一样的;如果使用(B)或(C)的原则,那么结果采用(B)、(C)中阐述的原则。
最好不要使用var关键字,如果控制不好,这会产生严重的问题!//------------------------------------------------------------------
置于out关键字,这是Delphi为了使用接口的特性而加入的符和IDL(Interface Definition Language),这个关键字在编写COM、CORBA时非常又用。