函數需要一參數即可傳入又可傳出,請指教...

解决方案 »

  1.   

    在参数前面加上 var 关键字,使它成为实参
      

  2.   

    function XXX(var a:string): string;
      

  3.   

    var 和out
    function funname(var Value: Integer): Integer;function funname(out Value: Integer): Integer;2者有点区别
      

  4.   

    使用var的参数传递方式。
    不能使用out的参数传递方式。
      

  5.   

    在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时非常又用。