Try OpenEdge Now
skip to main content
ABL Reference
Class Properties and Methods Reference : New( ) method
 

New( ) method

Instantiates a class whose class type and any parameters are known only at run time. This method returns a Progress.Lang.Object, which provides an instance of a class. The New( ) method provides similar functionality to the DYNAMIC-NEW function. The advantage to the latter is that it has a fixed, compile-time parameter list and does not require the creation of a Progress.Lang.ParameterList object at run time.
Return type: Progress.Lang.Object class
Access: PUBLIC
Applies to: Progress.Lang.Class class
The class type to instantiate is specified by the TypeName property of the applicable Progress.Lang.Class instance.

Syntax

Two overloaded versions are supported. The first version is used when the constructor of the class does not take any arguments.
New ( )
You can use the second overloaded version of the New( ) method when the constructor of a class takes zero or more parameters. Since a parameterlist-object can be built with zero or more parameters, this version of the New( ) method can be used to instantiate any class, even those classes whose constructor does not take any arguments.
New ( INPUT parameterlist-object AS Progress.Lang.ParameterList )
parameterlist-object
An instance of the Progress.Lang.ParameterList class. The instance contains an entry for each parameter required by the constructor being invoked. It is valid to pass a Progress.Lang.ParameterList object with zero parameters if the class constructor does not take any parameters. If one or more parameters are passed, the Progress.Lang.ParameterList:SetParameter( ) method must have been previously called on each parameter.
The AVM raises a run-time error if the Unknown value (?) is passed for parameterlist-object.

Notes

*Since the New( ) method returns an instance of the Progress.Lang.Object class, the result of the New( ) method must be assigned to a Progress.Lang.Object object.
*The New( ) method must be coded in a standalone Assignment (=) statement and not as part of an ASSIGN statement.
*For information on any restrictions, such as types of .NET objects you can instantiate, see the reference entry for the DYNAMIC-NEW statement.

See also

Clear( ) method (Class), DYNAMIC-INVOKE function, DYNAMIC-NEW statement, Invoke( ) method (Class), NEW function (classes), NEW statement, NumParameters property (ParameterList), Progress.Lang.ParameterList class, SetParameter( ) method (Class)