⇒ Библиотека книг по компьютерным технологиям
⇒ ⇒ Разработка Windows-приложений на Microsoft Visual Basic .NET и Microsoft Visual C# .NET. Учебный курс MCAD/MCSD
⇒ ⇒ ⇒ Глава 1. Введение в .NET Framework
⇒ ⇒ ⇒ ⇒ Занятие 2. Библиотека базовых классов .NET
Читать далее: Операторы Imports и using
Переменная, объявленная с типом значения, содержит все данные, которые представляет этот тип, тогда как переменная ссылочного типа содержит ссылку на некоторый объект — это принципиальное отличие между типами значения и ссылочными типами. Рассмотрим следующий пример:
Visual Basic .NET
Dim x, y As Integer x = 15 y = x x = 30 ' Каково значение y?
Visual C#
int x, y; x = 15; y = x; x = 30; // Каково значение y?
Здесь создаются две целочисленные переменные: x
и y
. Переменной x
присваивается значение 15
, после чего ее значение присваивается переменной y
. В завершение x
присваивается значение 30
. А каково значение y
? Ответ кажется очевидным: 15
. Так как x
и y
— разные переменные, модификация одной из них никак не влияет на другую. При исполнении команды y = x
значение переменной x
копируется в y
, между этими переменными больше нет никакой связи.
Со ссылочными типами все иначе. Рассмотрим пример, аналогичный предыдущему, но использующий переменные ссылочного типа (Form
) вместо типа значения:
Visual Basic .NET
Dim x, y As System.Windows.Forms.Form x = New System.Windows.Forms.Form x.Text = "This is Form 1" y = x x.Text = "This is Form 2" ' Какое значение вернет y.Text?
Visual C#
System.Windows.Forms.Form x, y; x = new System.Windows.Forms.Form(); x.Text = "This is Form 1"; y = x; x.Text = "This is Form 2"; // Какое значение вернет y.Text?
Какое значение вернет y.Text
? На этот раз ответ не столь очевиден. Поскольку System.Windows.Forms.Form
— это ссылочный тип, переменная x
не содержит форму, в действительности она хранит лишь ссылку на экземпляр формы. При исполнении команды x = y
исполняющая среда копирует эту ссылку из x
в y
, после чего переменная y
ссылается на тот же экземпляр формы, что и переменная x
. Поскольку обе переменные ссылаются на один и тот же экземпляр объекта, они возвращают одинаковые значения свойств объекта, который они представляют, то есть y.Text
вернет «This is Form 2
»
Все книги представлены на сайте исключительно для ознакомления с содержанием. |