Параметры методов

Параметры методов, если таковые имеются, определяются посредством списка формальных параметров.

formal-parameter-list:

formal-parameters   

formal-parameters:

fixed-parameters

fixed-parameters   ;   parameter-array

parameter-array

fixed-parameters:

fixed-parameter-block

fixed-parameters   ;   fixed-parameter-block

fixed-parameter-block:

attributesopt   parameter-modifieropt   parameter-list   :   type

parameter-list:

identifier

parameter-list   ,   identifier

parameter-modifier:

Var

Out

parameter-array:

attributesopt   ParamArray   identifier   :   array-type

Список формальных параметров состоит из описаний параметров из которых только последний может быть параметром-массивом.

Определение метода создает новое пространство определений для параметров и локальных переменных.

При вызове метода создается отдельная для данного вызова копия формальных параметров и локальных переменных метода. Формальные параметры означиваются фактическими значениями, указанными в списке аргументов при вызове метода. Внутри тела метода его параметры могут использоваться непосредственно путем указания их имен при этом используется нотация простого имени.

Существует четыре вида формальных параметров:

За исключением возможности передачи переменного количества аргументов параметры-массивы ничем не отличаются от параметров, передаваемых по значению.

Пример

Class MethodParams
    //Параметр i передается по значению
    //Параметр j передается по ссылке
    Public Sub A(i: integer; Var j: integer);
    Begin
        
    End Sub;
    
    //Выходной параметр i
    Public Sub B(Out i: integer);
    Var
        Result: integer;
    Begin
        //Код процедуры
        i := Result;
    End Sub;
    
    //Параметр-массив Arr
    Public Sub C(Paramarray Arr: array Of double);
    Begin
        
    End Sub;
End Class;

Sub Test();
Var
    Obj: MethodParams = New MethodParams();
    Result: integer;
    Arr: array Of double = New double[3];
Begin
    Obj.A(1Var Result);
    Obj.B(Out Result);
    Arr[0] := 1;
    Arr[1] := 2;
    Arr[2] := 3;
    Obj.C(Arr);
End Sub;

См. также:

Методы