* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Применение переменных ссылочных типов
7 февраля 2009

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

Теги: .NET

Статьи по теме:

Локализация формы
Создание формы
Инкапсуляция
Управление лицензированием элементов управления
Массивы
Применение класса XmlDataDocument
Преобразование кодировки символов
Замыкания (closure)
Классы CTS
Установка точек прерывания
Декларативная защита, основанная на ролях
Towards Cleaner Code II, a C# GUI Invoke/Async Helper
Вызов методов
Модель защиты, основанная на ролях
Пространства имен System.Drawing
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30


     



Данный сайт или домен продается

© 2009 Seoliga.ru | .NET | Применение переменных ссылочных типов. Регион сайта: Москва и Санкт-Петербург