Makes a private procedure or event handler.
[ modifiers ] _ Sub procedure_name [ type_list ] [ parameter_list ] [ return_type ] [ Where generic_constraints ] [ statements ] End [ Sub ]
[ modifiers ] _ Sub procedure_name [ type_list ] [ parameter_list ] Handles event_name [ Where generic_constraints ] [ statements ] End [ Sub ]
@Const– The procedure can run at compile-time. This puts many limits on the procedure. See
@Iterator– The procedure implements the iterator pattern. The procedure must have a return type. See
@MustUse– Code that calls the procedure must use the return value. See
@Shared– The procedure is a member of its container, and not an instance of that container. See
@Test– The procedure is a unit test. See
- Mandatory name for the procedure.
- Optional one or more names with a comma between each, all between brackets (
[ ]). See Type List for more information.
- Optional one or more declarators with a comma between each, optionally between parentheses.
But if you supply
return_type, the parentheses are mandatory. See Parameter List for more information.
- Optional in the usual construct.
- Not permitted in the event-handler construct.
- A data type
- A unit of measure
- Mandatory keyword used with the event-handler construct. See the Handles keyword section for more information.
- Optional. See Where Clause (Generics) for more information.
- Optional one or more statements to declare variables and/or run some code.
- Completes the statement.
You can also use
- You can make one of these mandatory with the directive
@Option End. See @Option Directive for more information.
End Sub is not the same as
Sub is short for “subroutine”.
Handles does two things for the construct
- It changes the procedure to become an event handler.
- It puts the parameters supplied by a declaration of
Eventinto the procedure where they become available.