Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 7220-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 C# для новичков, вопросы и ответы

JONSON
Mar 24 2015, 14:10
  
Пост #1



Репутация:   176  
Постоялец
***

Группа: Пользователи
Сообщений: 1 057
С нами с: 17-January 08


del

Сообщение отредактировал JONSON - Aug 14 2015, 10:38
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
Carnifex
Aug 9 2015, 22:35
  
Пост #2



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


Давайте так. Дабы не было путаницы. Ты пишешь код. После того как ты нажимаешь кнопку Run компилятор перегоняет его в так называемый Intermediate Language. Потом в машинный код называемый Executable тоесть, по-простому, *.exe. Это простой случай. Касательно классов, они(точнее их объекты), как ссылочные типы, размещаются в управляемой куче (это кусок оперативной памяти). При этом обычные объекты обычных классов размещаются в куче при вызове их конструктора (с исп. new), а статические поля (или даже статические классы) размещаются в High Frequency Heap (высокочастотная куча) после вызова их статических инициализаторов в текстовом порядке (по очереди короче), в момент их вызова или, при наличии статического конструктора, сразу перед вызовом конструктора. В стек (это тоже кусок оперативной памяти, выделяемый операционкой каждому процессу), кстати, идут ссылки на объекты, размещенные в куче. На жестком всегда находится только код. С метаданными в отдельном файле, преобразованный в машинный или в обычном виде, как угодно, но это всегда код. Может быть создана *.dll - но это тоже код.
По поводу this. На данном этапе, не вдаваясь в подробности реализации индексаторов и методов расширения, я рекомендую рассматривать его как ссылку на ЭКЗЕМПЛЯР (ОБЪЕКТ) текущего типа, в котором вы сейчас пишете Ваш код. Написать в коде this - все равно что вызвать конструктор типа и работать уже с объектом.
Если запутались с интерфейсами, рассмотрите их просто как обещание. Обещание того, что класс, который их наследует, будет иметь такие же поля и методы, только уже с реализацией (тоесть с телом) и не приплетайте туда this.

Сообщение отредактировал Carnifex - Aug 9 2015, 22:44
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме


Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 20th December 2025 - 19:21
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.