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



Download 6,27 Mb.
Pdf ko'rish
bet88/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   84   85   86   87   88   89   90   91   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

таблица 4.2.
.Защищенные.методы.System Object
защищенный 
метод
Описание
Memberwise-
Clone
Этот невиртуальный метод создает новый экземпляр типа и при-
сваивает полям нового объекта соответствующие значения объекта 
this. Возвращается ссылка на созданный экземпляр
Finalize
Этот виртуальный метод вызывается, когда уборщик мусора опре-
деляет, что объект является мусором, но до возвращения занятой 
объектом памяти в кучу. В типах, требующих очистки при сборке 
мусора, следует переопределить этот метод. Подробнее о нем см. 
главу 21
CLR требует, чтобы все объекты создавались оператором 
new
. Например, объект 
Employee
создается следующим образом:
Employee e = new Employee("ConstructorParam1");
Оператор 
new
выполняет следующие действия:


124
Глава.4 .Основы.типов
1. Вычисление количества байтов, необходимых для хранения всех экземпляр-
ных полей типа и всех его базовых типов, включая 
System.Object
(в котором 
отсутствуют собственные экземплярные поля). Кроме того, в каждом объекте 
кучи должны присутствовать дополнительные члены, называемые 
указателем 
на объект-тип
(type object pointer) и 
индексом блока синхронизации
(sync block 
index); они необходимы CLR для управления объектом. Байты этих дополни-
тельных членов добавляются к байтам, необходимым для размещения самого 
объекта.
2. Выделение памяти для объекта с резервированием необходимого для данного 
типа количества байтов в управляемой куче. Выделенные байты инициализи-
руются нулями (0).
3. Инициализация указателя на объект-тип и индекса блока синхронизации.
4. Вызов конструктора экземпляра типа с параметрами, указанными при вызове 
new
(в предыдущем примере это строка 
ConstructorParam1
). Большинство 
компиляторов автоматически включает в конструктор код вызова конструктора 
базового класса. Каждый конструктор выполняет инициализацию определенных 
в соответствующем типе полей. В частности, вызывается конструктор 
System.
Object
, но он ничего не делает и просто возвращает управление.
Выполнив все эти операции, 
new
возвращает ссылку (или указатель) на вновь 
созданный объект. В предыдущем примере кода эта ссылка сохраняется в пере-
менной 
e
типа 
Employee
.
Кстати, у оператора 
new
нет пары — оператора 
delete
, то есть нет явного способа 
освобождения памяти, занятой объектом. Уборкой мусора занимается среда CLR 
(см. главу 21), которая автоматически находит объекты, ставшие ненужными или 
недоступными, и освобождает занимаемую ими память.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   84   85   86   87   88   89   90   91   ...   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