Public Class Tester
' instance variable can be used anywhere in class
Dim Shared value As Integer = 1
' demonstrates class scope and block scope
Public Shared Sub Main
Dim value As Integer = 5
Console.WriteLine("local variable value in" & _
" FrmScoping_Load is " & value )
MethodA() ' MethodA has automatic local value
MethodB() ' MethodB uses instance variable value
MethodA() ' MethodA creates new automatic local value
MethodB() ' instance variable value retains its value
Console.WriteLine("local variable " & _
"value in FrmScoping_Load is " & value )
End Sub
' automatic local variable value hides instance variable
Shared Sub MethodA()
Dim value As Integer = 25 ' initialized after each call
Console.WriteLine("local variable " & _
"value in MethodA is " & value & " after entering MethodA" )
value += 1
Console.WriteLine("local variable " & _
"value in MethodA is " & value & " before exiting MethodA" )
End Sub
' uses instance variable value
Shared Sub MethodB()
Console.WriteLine("instance variable" & _
" value is " & value & " after entering MethodB" )
value *= 10
Console.WriteLine("instance variable " & _
"value is " & value & " before exiting MethodB" )
End Sub
End Class
local variable value in FrmScoping_Load is 5
local variable value in MethodA is 25 after entering MethodA
local variable value in MethodA is 26 before exiting MethodA
instance variable value is 1 after entering MethodB
instance variable value is 10 before exiting MethodB
local variable value in MethodA is 25 after entering MethodA
local variable value in MethodA is 26 before exiting MethodA
instance variable value is 10 after entering MethodB
instance variable value is 100 before exiting MethodB
local variable value in FrmScoping_Load is 5