Variable declaration modifier specifying visibility throughout a module
Syntax
Description
Shared makes module-level variables visible inside
Subs and
Functions. If
Shared is not used on a module-level variable's declaration, it is stored on the stack of the implicit main function and therefore only visible to the module-level code in that file.
Example
'' Compile with -lang qb or fblite
Declare Sub MySub
Dim Shared x As Integer
Dim y As Integer
x = 10
y = 5
MySub
Sub MySub
Print "x is "; x 'this will report 10 as it is shared
Print "y is "; y 'this will not report 5 because it is not shared
End Sub
Differences from QB
- The Shared statement inside scope blocks -- functions, subs, if/thens, and loops -- is not supported. Use Dim|Redim|Common Shared in the main program instead. Or if you're inside a scope block and Redimming a variable or array previously set up with Shared, just do a Redim without Shared; it will work fine and won't ruin anything.
See also