Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet304/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   300   301   302   303   304   305   306   307   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Глава 16.
 Массивы
Массив представляет собой механизм, позволяющий рассматривать набор элементов 
как единую коллекцию. Общеязыковая исполняющая среда Microsoft .NET (CLR) 
поддерживает 
одномерные
(single-dimension), 
многомерные
(multidimension) и 
нере-
гулярные 
(jagged) массивы. Базовым для всех массивов является абстрактный класс 
System.Array
, производный от 
System.Object
. Значит, массивы всегда относятся 
к ссылочному типу и размещаются в управляемой куче, а переменная в приложении 
содержит не элементы массива, а ссылку на массив. Рассмотрим пример:
Int32[] myIntegers; // Объявление ссылки на массив
myIntegers = new Int32[100]; // Создание массива типа Int32 из 100 элементов
В первой строке объявляется переменная 
myIntegers
, которая будет ссылаться 
на одномерный массив элементов типа 
Int32
. Вначале ей присваивается значение 
null
, так как память под массив пока не выделена. Во второй строке выделяется 
память под 100 значений типа 
Int32
; и всем им присваивается начальное значение 0. 
Поскольку массивы относятся к ссылочным типам, блок памяти для хранения 100 
неупакованных экземпляров типа 
Int32
выделяется в управляемой куче. Вообще 
говоря, помимо элементов массива в этом блоке размещается указатель на объект-
тип, индекс блока синхронизации, а также некоторые дополнительные члены. Адрес 
этого блока памяти заносится в переменную 
myIntegers
.
Можно также создать массивы с элементами ссылочного типа:
Control[] myControls; // Объявление ссылки на массив
myControls = new Control[50]; // Создание массива из 50 ссылок 
// на переменную Control
Переменная 
myControls
из первой строки может указывать на одномерный 
массив ссылок на элементы 
Control
. Вначале ей присваивается значение 
null

ведь память под массив пока не выделена. Во второй строке выделяется память 
под 50 ссылок на 
Control
, и все они инициализируются значением 
null
. Посколь-
ку 
Control
относится к ссылочным типам, массив формируется путем создания 
ссылок, а не каких-либо реальных объектов. Возвращенный адрес блока памяти 
заносится в переменную 
myControls
.
На рис. 16.1 показано, как выглядят массивы значимого и ссылочного типов 
в управляемой куче.
На этом рисунке показан массив 
Controls
после выполнения следующих ин-
струкций:
myControls[1] = new Button();
myControls[2] = new TextBox();
myControls[3] = myControls[2]; // Два элемента ссылаются на один объект


417
Массивы
myControls[46] = new DataGrid();
myControls[48] = new ComboBox();
myControls[49] = new Button();
Äîïîëíèòåëüíàÿ 
èíôîðìàöèÿ
Äîïîëíèòåëüíàÿ 
èíôîðìàöèÿ

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   300   301   302   303   304   305   306   307   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish