<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FLanguage_Basics%2FVariable_Scope</id>
		<title>VB.Net Tutorial/Language Basics/Variable Scope - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FLanguage_Basics%2FVariable_Scope"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Language_Basics/Variable_Scope&amp;action=history"/>
		<updated>2026-04-05T13:05:27Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Language_Basics/Variable_Scope&amp;diff=3189&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Language_Basics/Variable_Scope&amp;diff=3189&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Language_Basics/Variable_Scope&amp;diff=3190&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Language_Basics/Variable_Scope&amp;diff=3190&amp;oldid=prev"/>
				<updated>2010-05-26T12:54:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Block scope==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Option Strict On&lt;br /&gt;
Public Class BlockScope&lt;br /&gt;
   Public Shared Sub Main()&lt;br /&gt;
   &lt;br /&gt;
      For outerLoop As Integer = 0 to 10000&lt;br /&gt;
         For innerLoop As Integer = 0 to 10&lt;br /&gt;
            Dim blockVar As Integer&lt;br /&gt;
            blockVar += 1&lt;br /&gt;
            If blockVar Mod 1000 = 0 Then &lt;br /&gt;
                Console.WriteLine(blockVar)&lt;br /&gt;
            End If&lt;br /&gt;
         Next&lt;br /&gt;
      Next&lt;br /&gt;
   &lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;1000&lt;br /&gt;
2000&lt;br /&gt;
3000&lt;br /&gt;
4000&lt;br /&gt;
5000&lt;br /&gt;
6000&lt;br /&gt;
7000&lt;br /&gt;
8000&lt;br /&gt;
9000&lt;br /&gt;
10000&lt;br /&gt;
11000&lt;br /&gt;
12000&lt;br /&gt;
13000&lt;br /&gt;
14000&lt;br /&gt;
15000&lt;br /&gt;
16000&lt;br /&gt;
17000&lt;br /&gt;
18000&lt;br /&gt;
19000&lt;br /&gt;
20000&lt;br /&gt;
21000&lt;br /&gt;
22000&lt;br /&gt;
23000&lt;br /&gt;
24000&lt;br /&gt;
25000&lt;br /&gt;
26000&lt;br /&gt;
27000&lt;br /&gt;
28000&lt;br /&gt;
29000&lt;br /&gt;
30000&lt;br /&gt;
31000&lt;br /&gt;
32000&lt;br /&gt;
33000&lt;br /&gt;
34000&lt;br /&gt;
35000&lt;br /&gt;
36000&lt;br /&gt;
37000&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Define variable inside If statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;public class Test&lt;br /&gt;
   public Shared Sub Main&lt;br /&gt;
        Dim manager As Boolean = True&lt;br /&gt;
        If manager Then Dim txt As String = &amp;quot;M&amp;quot; : Console.WriteLine(txt) Else _&lt;br /&gt;
            Dim txt As String = &amp;quot;E&amp;quot; : Console.WriteLine(txt)&lt;br /&gt;
   End Sub&lt;br /&gt;
End class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Demonstrates scope rules and instance variables==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Public Class Tester&lt;br /&gt;
   &amp;quot; instance variable can be used anywhere in class&lt;br /&gt;
   Dim Shared value As Integer = 1&lt;br /&gt;
   &amp;quot; demonstrates class scope and block scope&lt;br /&gt;
   Public Shared Sub Main&lt;br /&gt;
      Dim value As Integer = 5&lt;br /&gt;
      Console.WriteLine(&amp;quot;local variable value in&amp;quot; &amp;amp; _&lt;br /&gt;
         &amp;quot; FrmScoping_Load is &amp;quot; &amp;amp; value )&lt;br /&gt;
      MethodA() &amp;quot; MethodA has automatic local value&lt;br /&gt;
      MethodB() &amp;quot; MethodB uses instance variable value&lt;br /&gt;
      MethodA() &amp;quot; MethodA creates new automatic local value&lt;br /&gt;
      MethodB() &amp;quot; instance variable value retains its value&lt;br /&gt;
      Console.WriteLine(&amp;quot;local variable &amp;quot; &amp;amp; _&lt;br /&gt;
         &amp;quot;value in FrmScoping_Load is &amp;quot; &amp;amp; value )&lt;br /&gt;
   End Sub &lt;br /&gt;
   &amp;quot; automatic local variable value hides instance variable&lt;br /&gt;
   Shared Sub  MethodA()&lt;br /&gt;
      Dim value As Integer = 25 &amp;quot; initialized after each call&lt;br /&gt;
      Console.WriteLine(&amp;quot;local variable &amp;quot; &amp;amp; _&lt;br /&gt;
         &amp;quot;value in MethodA is &amp;quot; &amp;amp; value &amp;amp; &amp;quot; after entering MethodA&amp;quot; )&lt;br /&gt;
      value += 1&lt;br /&gt;
      Console.WriteLine(&amp;quot;local variable &amp;quot; &amp;amp; _&lt;br /&gt;
         &amp;quot;value in MethodA is &amp;quot; &amp;amp; value &amp;amp; &amp;quot; before exiting MethodA&amp;quot; )&lt;br /&gt;
   End Sub &lt;br /&gt;
   &amp;quot; uses instance variable value&lt;br /&gt;
   Shared Sub  MethodB()&lt;br /&gt;
      Console.WriteLine(&amp;quot;instance variable&amp;quot; &amp;amp; _&lt;br /&gt;
         &amp;quot; value is &amp;quot; &amp;amp; value &amp;amp; &amp;quot; after entering MethodB&amp;quot; )&lt;br /&gt;
      value *= 10&lt;br /&gt;
      Console.WriteLine(&amp;quot;instance variable &amp;quot; &amp;amp; _&lt;br /&gt;
         &amp;quot;value is &amp;quot; &amp;amp; value &amp;amp; &amp;quot; before exiting MethodB&amp;quot; )&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;local variable value in FrmScoping_Load is 5&lt;br /&gt;
local variable value in MethodA is 25 after entering MethodA&lt;br /&gt;
local variable value in MethodA is 26 before exiting MethodA&lt;br /&gt;
instance variable value is 1 after entering MethodB&lt;br /&gt;
instance variable value is 10 before exiting MethodB&lt;br /&gt;
local variable value in MethodA is 25 after entering MethodA&lt;br /&gt;
local variable value in MethodA is 26 before exiting MethodA&lt;br /&gt;
instance variable value is 10 after entering MethodB&lt;br /&gt;
instance variable value is 100 before exiting MethodB&lt;br /&gt;
local variable value in FrmScoping_Load is 5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Function local variables==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Module Module1&lt;br /&gt;
    Sub F()&lt;br /&gt;
        Dim Name As String = &amp;quot;www.vbex.ru&amp;quot;&lt;br /&gt;
        Dim Price As Double = 17.45&lt;br /&gt;
        Dim I As Integer = 1001&lt;br /&gt;
        Console.WriteLine(&amp;quot;In F&amp;quot;)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Name: &amp;quot; &amp;amp; Name)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Price: &amp;quot; &amp;amp; Price)&lt;br /&gt;
        Console.WriteLine(&amp;quot;I: &amp;quot; &amp;amp; I)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub FF()&lt;br /&gt;
        Dim Name As String = &amp;quot;string&amp;quot;&lt;br /&gt;
        Dim Price As Double = 49.99&lt;br /&gt;
        Dim I As Integer = 0&lt;br /&gt;
        Console.WriteLine(&amp;quot;In FF&amp;quot;)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Name: &amp;quot; &amp;amp; Name)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Price: &amp;quot; &amp;amp; Price)&lt;br /&gt;
        Console.WriteLine(&amp;quot;I: &amp;quot; &amp;amp; I)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub Main()&lt;br /&gt;
        F()&lt;br /&gt;
        Console.WriteLine()&lt;br /&gt;
        FF()&lt;br /&gt;
    End Sub&lt;br /&gt;
End Module&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;In F&lt;br /&gt;
Name: www.vbex.ru&lt;br /&gt;
Price: 17.45&lt;br /&gt;
I: 1001&lt;br /&gt;
In FF&lt;br /&gt;
Name: string&lt;br /&gt;
Price: 49.99&lt;br /&gt;
I: 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Local variable shadows global variable with the same name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Module Module1&lt;br /&gt;
    Dim Counter As Integer&lt;br /&gt;
    Sub BigLoop()&lt;br /&gt;
        For Counter = 1000 To 1005      &amp;quot; Use global Counter&lt;br /&gt;
            Console.Write(Counter &amp;amp; &amp;quot; &amp;quot;)&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub LittleLoop()&lt;br /&gt;
        Dim Counter As Integer&lt;br /&gt;
        For Counter = 0 To 5      &amp;quot; Use local Counter&lt;br /&gt;
            Console.Write(Counter &amp;amp; &amp;quot; &amp;quot;)&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub Main()&lt;br /&gt;
        Counter = 100&lt;br /&gt;
        Console.WriteLine(&amp;quot;Starting Counter: &amp;quot; &amp;amp; Counter)&lt;br /&gt;
        BigLoop()&lt;br /&gt;
        Console.WriteLine(&amp;quot;Counter after BigLoop: &amp;quot; &amp;amp; Counter)&lt;br /&gt;
        LittleLoop()&lt;br /&gt;
        Console.WriteLine(&amp;quot;Counter after LittleLoop: &amp;quot; &amp;amp; Counter)&lt;br /&gt;
        If (Counter &amp;gt; 1000) Then&lt;br /&gt;
            Dim Counter As Integer = 0&lt;br /&gt;
            Console.WriteLine(&amp;quot;Counter in If statement: &amp;quot; &amp;amp; Counter)&lt;br /&gt;
        End If&lt;br /&gt;
        Console.WriteLine(&amp;quot;Ending Counter: &amp;quot; &amp;amp; Counter)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Module&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Starting Counter: 100&lt;br /&gt;
1000 1001 1002 1003 1004 1005 Counter after BigLoop: 1006&lt;br /&gt;
0 1 2 3 4 5 Counter after LittleLoop: 1006&lt;br /&gt;
Counter in If statement: 0&lt;br /&gt;
Ending Counter: 1006&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Module global variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Module Module1&lt;br /&gt;
    Sub Main()&lt;br /&gt;
        For intLoopIndex As Integer = 0 To 5&lt;br /&gt;
            System.Console.WriteLine(Tracker())&lt;br /&gt;
        Next intLoopIndex&lt;br /&gt;
    End Sub&lt;br /&gt;
    Dim intCount As Integer&lt;br /&gt;
    Function Tracker() As Integer&lt;br /&gt;
        intCount += 1&lt;br /&gt;
        Return intCount&lt;br /&gt;
    End Function&lt;br /&gt;
End Module&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sub scope==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;public class Test&lt;br /&gt;
   public Shared Sub Main&lt;br /&gt;
        DisplayHowardsName()&lt;br /&gt;
        DisplayStephsName()&lt;br /&gt;
   End Sub&lt;br /&gt;
   Shared Sub DisplayStephsName()&lt;br /&gt;
        Dim myName As String&lt;br /&gt;
        myName = &amp;quot;A&amp;quot;&lt;br /&gt;
        Console.WriteLine(myName)&lt;br /&gt;
    End Sub&lt;br /&gt;
   Shared Sub DisplayHowardsName()&lt;br /&gt;
        Dim myName As String&lt;br /&gt;
        myName = &amp;quot;B&amp;quot;&lt;br /&gt;
        Console.WriteLine(myName)&lt;br /&gt;
    End Sub&lt;br /&gt;
  &lt;br /&gt;
End class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;B&lt;br /&gt;
A&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variable block scope==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;public class Test&lt;br /&gt;
   public Shared Sub Main&lt;br /&gt;
        For i As Integer = 1 To 5&lt;br /&gt;
            Dim j As Integer = 3&lt;br /&gt;
            If i = j Then&lt;br /&gt;
                Dim M As Integer = i + j&lt;br /&gt;
                Console.WriteLine(&amp;quot;M: &amp;quot; &amp;amp; M)&lt;br /&gt;
            Else&lt;br /&gt;
                Dim N As Integer = i * j&lt;br /&gt;
                Console.WriteLine(&amp;quot;N: &amp;quot; &amp;amp; N)&lt;br /&gt;
            End If&lt;br /&gt;
            Dim k As Integer = 123&lt;br /&gt;
            Console.WriteLine(&amp;quot;k: &amp;quot; &amp;amp; k)&lt;br /&gt;
        Next i&lt;br /&gt;
   End Sub&lt;br /&gt;
End class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;N: 3&lt;br /&gt;
k: 123&lt;br /&gt;
N: 6&lt;br /&gt;
k: 123&lt;br /&gt;
M: 6&lt;br /&gt;
k: 123&lt;br /&gt;
N: 12&lt;br /&gt;
k: 123&lt;br /&gt;
N: 15&lt;br /&gt;
k: 123&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variable scope in try catch statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;public class Test&lt;br /&gt;
   public Shared Sub Main&lt;br /&gt;
&lt;br /&gt;
        Try&lt;br /&gt;
            Dim i As Integer = CInt(&amp;quot;bad value&amp;quot;)&lt;br /&gt;
        Catch ex As InvalidCastException&lt;br /&gt;
            Dim txt As String = &amp;quot;InvalidCastException&amp;quot;&lt;br /&gt;
            Console.WriteLine(txt)&lt;br /&gt;
        Catch ex As Exception&lt;br /&gt;
            Dim txt As String = &amp;quot;Exception&amp;quot;&lt;br /&gt;
            Console.WriteLine(txt)&lt;br /&gt;
        End Try&lt;br /&gt;
   End Sub&lt;br /&gt;
End class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;InvalidCastException&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>