Когда определение метода содержит модификатор Shared такой метод называется статическим. Когда модификатора Shared нет в определении метода он называется экземплярным.
Статический метод не оперирует конкретным экземпляром, является ошибкой компиляции использование конструкции Self в статическом методе.
Экземплярный метод оперирует определенным экземпляром класса, который может быть получен посредством конструкции Self.
Различия между статическими и экземплярными членами описано в разделе «Статические и экземплярные члены».
Class SharedMethod
Public Shared i: integer;
Public Shared o: object;
Shared b: boolean;
Public Shared Sub Reset();
Begin
i := 0;
o := Null;
End Sub;
Public Shared Function TestObject(): boolean;
Begin
If (i <> 0) And (o <> Null) Then
b := True;
Else
b := False;
End If;
Return b;
End Function;
Public Sub Execute();
Begin
End Sub Execute;
End Class;
Sub Test();
Var
Obj: SharedMethod = New SharedMethod();
Begin
SharedMethod.Reset();
...
SharedMethod.i := //Установка значения
SharedMethod.o := //Установка значения
...
If SharedMethod.TestObject() Then
//Действия, если функция вернула значение True
Else
//Действия, если функция вернула значение False
End If;
Obj.Execute();
End Sub;
См.также: