<?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%2FClass_Module%2FPass_by_Reference</id>
		<title>VB.Net Tutorial/Class Module/Pass by Reference - История изменений</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%2FClass_Module%2FPass_by_Reference"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Class_Module/Pass_by_Reference&amp;action=history"/>
		<updated>2026-04-05T05:57:09Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Class_Module/Pass_by_Reference&amp;diff=3462&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/Class_Module/Pass_by_Reference&amp;diff=3462&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/Class_Module/Pass_by_Reference&amp;diff=3463&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/Class_Module/Pass_by_Reference&amp;diff=3463&amp;oldid=prev"/>
				<updated>2010-05-26T12:55:42Z</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;==Demonstrates passing by reference.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Module Tester&lt;br /&gt;
   Sub Main()&lt;br /&gt;
      Dim number1 As Integer = 2&lt;br /&gt;
      Console.WriteLine(&amp;quot;Before calling SquareByValue, &amp;quot; &amp;amp; &amp;quot;number1 is {0}&amp;quot;, number1)&lt;br /&gt;
      SquareByValue(number1)  &amp;quot; passes number1 by value&lt;br /&gt;
      Console.WriteLine(&amp;quot;After returning from SquareByValue, &amp;quot; &amp;amp; &amp;quot;number1 is {0}&amp;quot; &amp;amp; vbCrLf, number1)&lt;br /&gt;
      Dim number2 As Integer = 2&lt;br /&gt;
      Console.WriteLine(&amp;quot;Before calling SquareByReference, &amp;quot; &amp;amp; &amp;quot;number2 is {0}&amp;quot;, number2)&lt;br /&gt;
      SquareByReference(number2) &amp;quot; passes number2 by reference&lt;br /&gt;
      Console.WriteLine(&amp;quot;After returning from &amp;quot; &amp;amp; _&lt;br /&gt;
         &amp;quot;SquareByReference, number2 is {0}&amp;quot; &amp;amp; vbCrLf, number2)&lt;br /&gt;
      Dim number3 As Integer = 2&lt;br /&gt;
      Console.WriteLine(&amp;quot;Before calling SquareByReference &amp;quot; &amp;amp; &amp;quot;using parentheses, number3 is {0}&amp;quot;,number3)&lt;br /&gt;
      SquareByReference((number3)) &amp;quot; passes number3 by value&lt;br /&gt;
      Console.WriteLine(&amp;quot;After returning from &amp;quot; &amp;amp; &amp;quot;SquareByReference, number3 is {0}&amp;quot;, number3)&lt;br /&gt;
   End Sub&lt;br /&gt;
   Sub SquareByValue(ByVal number As Integer)&lt;br /&gt;
      Console.WriteLine(&amp;quot;After entering SquareByValue, &amp;quot; &amp;amp; &amp;quot;number is {0}&amp;quot;, number)&lt;br /&gt;
      number *= number&lt;br /&gt;
      Console.WriteLine(&amp;quot;Before exiting SquareByValue, &amp;quot; &amp;amp; &amp;quot;number is {0}&amp;quot;, number)&lt;br /&gt;
   End Sub&lt;br /&gt;
   Sub SquareByReference(ByRef number As Integer)&lt;br /&gt;
      Console.WriteLine(&amp;quot;After entering SquareByReference&amp;quot; &amp;amp; &amp;quot;, number is {0}&amp;quot;, number)&lt;br /&gt;
      number *= number&lt;br /&gt;
      Console.WriteLine(&amp;quot;Before exiting SquareByReference&amp;quot; &amp;amp; &amp;quot;, number is {0}&amp;quot;, number)&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;Before calling SquareByValue, number1 is 2&lt;br /&gt;
After entering SquareByValue, number is 2&lt;br /&gt;
Before exiting SquareByValue, number is 4&lt;br /&gt;
After returning from SquareByValue, number1 is 2&lt;br /&gt;
Before calling SquareByReference, number2 is 2&lt;br /&gt;
After entering SquareByReference, number is 2&lt;br /&gt;
Before exiting SquareByReference, number is 4&lt;br /&gt;
After returning from SquareByReference, number2 is 4&lt;br /&gt;
Before calling SquareByReference using parentheses, number3 is 2&lt;br /&gt;
After entering SquareByReference, number is 2&lt;br /&gt;
Before exiting SquareByReference, number is 4&lt;br /&gt;
After returning from SquareByReference, number3 is 2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pass class by reference==&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 YourClass&lt;br /&gt;
   Private yourName As String&lt;br /&gt;
   Private yourNumber As Decimal&lt;br /&gt;
   Public Sub New(breed As String)&lt;br /&gt;
      yourName = breed&lt;br /&gt;
   End Sub&lt;br /&gt;
   Public ReadOnly Property Name() As String&lt;br /&gt;
      Get&lt;br /&gt;
         Return yourName&lt;br /&gt;
      End Get&lt;br /&gt;
   End Property&lt;br /&gt;
   Public Property Number() As Decimal&lt;br /&gt;
      Get&lt;br /&gt;
         Return yourNumber&lt;br /&gt;
      End Get&lt;br /&gt;
      Set&lt;br /&gt;
         yourNumber = CDec(value)&lt;br /&gt;
      End Set&lt;br /&gt;
   End Property&lt;br /&gt;
   Public Sub ShowInfo()&lt;br /&gt;
      Console.WriteLine(&amp;quot;This &amp;quot; &amp;amp; yourName &amp;amp; &amp;quot; weighs &amp;quot; &amp;amp; yourNumber &amp;amp; &amp;quot; pounds.&amp;quot;)&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Class Tester&lt;br /&gt;
   Public Shared Sub Main()&lt;br /&gt;
      Dim mal As New YourClass(&amp;quot;A&amp;quot;)&lt;br /&gt;
      mal.Number = 130&lt;br /&gt;
      ChangeYourClassInfo(mal)&lt;br /&gt;
      mal.ShowInfo&lt;br /&gt;
      CompletelyChangeYourClassInfo(mal)&lt;br /&gt;
      mal.ShowInfo&lt;br /&gt;
   End Sub&lt;br /&gt;
   Public Shared Sub ChangeYourClassInfo(ByVal aYourClass As YourClass)&lt;br /&gt;
      aYourClass.Number = 125&lt;br /&gt;
   End Sub&lt;br /&gt;
   Public Shared Sub CompletelyChangeYourClassInfo(ByVal aYourClass As YourClass)&lt;br /&gt;
      Dim newf As New YourClass(&amp;quot;Newfoundland&amp;quot;)&lt;br /&gt;
      aYourClass = newf&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;This A weighs 125 pounds.&lt;br /&gt;
This A weighs 125 pounds.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pass Decimal by reference==&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 Module Tester&lt;br /&gt;
   Public Sub Main()&lt;br /&gt;
      Dim salary As Decimal = 400.00d&lt;br /&gt;
      Dim reviewPts As Integer = 12&lt;br /&gt;
      ReceiveRaise(salary, reviewPts)&lt;br /&gt;
      Console.WriteLine(salary)&lt;br /&gt;
   End Sub&lt;br /&gt;
   Function ReceiveRaise(ByRef salary As Decimal, ByVal reviewPts As Integer) _&lt;br /&gt;
                         As Boolean&lt;br /&gt;
         Dim increasePct As Decimal&lt;br /&gt;
         increasePct = ((reviewPts - 10) * .005d)&lt;br /&gt;
         salary = salary * (1 + increasePct)&lt;br /&gt;
         Return True&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;404.000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pass value by reference==&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;
 Imports System&lt;br /&gt;
 Module Module1&lt;br /&gt;
    Sub Main( )&lt;br /&gt;
       Dim theVariable As Integer = 5&lt;br /&gt;
       Console.WriteLine(&amp;quot;In Run. theVariable: {0}&amp;quot;,theVariable)&lt;br /&gt;
       Doubler(theVariable)&lt;br /&gt;
       Console.WriteLine(&amp;quot;Back in Run. theVariable: {0}&amp;quot;,theVariable)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub Doubler(ByVal param As Integer)&lt;br /&gt;
       Console.WriteLine(&amp;quot;In Method1. Received param: {0}&amp;quot;,param)&lt;br /&gt;
       param *= 2&lt;br /&gt;
       Console.WriteLine(&amp;quot;Updated param. Returning new value: {0}&amp;quot;, _&lt;br /&gt;
       param)&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
 End Module&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;In Run. theVariable: 5&lt;br /&gt;
In Method1. Received param: 5&lt;br /&gt;
Updated param. Returning new value: 10&lt;br /&gt;
Back in Run. theVariable: 5&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>