ище виконан) Керує Виконання коду .NET. Бібліотека класів .NET Забезпечує програмісту доступ до середовища виконан. Фреймворк поєднує в Собі середовище виконан програм (CLR) та середовище їх розробки (Microsoft Visual Studio).
Результатом компіляції програми на C # є НЕ віконуваній код, а так кличуть входити збірка , что містіть код у проміжній мові и метадані. Мова має Назву Microsoft Intermediate Language (MSIL) . У цьом коді Визначи набор переносимості інструкцій, что НЕ залежався від конкретного процесора, Щось на кшталт стерпного асемблерного коду.
Метадані слугують для Опису даних, что Використовують в Програмі, а такоже для відомостей про саму збірку. Смороду дозволяють організуваті взаємодію между кодом, что написань на різніх мовах програмування.
Рис. 1 Схема виконан програми в .NET.
Призначення CLR - перетворюваті проміжній код у віконуваній по мірі виконан програми. Дана функція забезпечується JIT-компілятором . При віконанні програми CLR актівізує JIT-компілятор, Який перетворює MSIL-код у набор команд конкретного процесора за потребою для кожної части програми. ЦІ части програми компілюються лишь раз. У цьом випадка віконуваного файлу на диску не існує, ВІН знаходиться в оператівній пам яті.
Однією з функцій CLR є Автоматичне управління пам яттю та з бір сміття . Середовище самє віявляє про єкти, на Які немає ПОСИЛАННЯ, и відаляє їх. Єдиним недоліком такого підходу є неможлівість програмним чином ВИДАЛИТИ про єкт, что виробляти до Певного перерозподілу оператівної пам яті. Правда Є можливість віклікаті процес збору сміття.
Збірки .NET могут розроблятіся и Виконувати в СЕРЕДОВИЩА, відмінніх від Microsoft Windows. Компанія Microsoft разработали офіційну документацію синтаксису и семантики мов C # та MSIL, формату збірок .NET, ключовими просторів імен фреймворку и технічних деталей Функціонування гіпотетічного середовища виконан (Virtual Execution System). Ця документація дозволяє третім сторонам розробляті дистрибутиви платформи .NET і компіляторі C # зокрема.
1.3 ООП и C #
Основним Поняття мови C # є Поняття класу, оскількі C # є Повністю про єктно-орієнтованою мовою програмування. Формально клас є типом даних - семантичності одиницею, что опісує вміст и поведение множини про єктів. Членами класу в C # могут буті поля, методи, події, константи, Властивості, індексаторі, перевантажені операции, конструктори, деструктори та вкладені тіпі. Останні являються собою описание одного класу Всередині Іншого. Члени могут буті статичними, тобто членами класу, и членами екземплярів. Звернення до статичних членів відбувається через ім я кл?? су. Звернення ж до членів екземпляр (про єкту) реалізовується помощью имени про єкту. Коженая про єкт має свои копії членів. Такі члени як например, методи, існують в одному екземплярі даже для про єктів.
Опис класу містіть ключовими словами class . У Загальний опис Виглядає Наступний чином:
[модіфікаторі] class імя_класу
{
Тіло класу
}
Як можна Побачити, обов язковим є только слово class та Тіло класу.
Константа представляет собою член класу, что містіть незмінюване значення, Пожалуйста обчіслюється компілятором. Значення могут віраховуватісь на Основі значень других констант. Оскількі значення констант визначаються ще в процессе компіляції, то смороду автоматично стають статичними членами класу. Їх! Застосування Полягає в тому, щоб вместо значення константи використовуват ее ім я. Це полегшує читання програми и Внесення КОРЕКТ, оскількі простіше Сменить значення в одному місці програми. Приклад оголошення: int r=1; const char s=% raquo ;;
Поле - це змінна, что є членом класу. Змінна - іменована область пам яті, что призначе для зберігання даних конкретного типу. Во время виконан програми значення змінної можна змінюваті. При опісі для кожної змінної задаються ее ім я та тип. Статічні поля могут використовуват як внутрішні Константи класу, значення якіх візначається при его ініціалізації. Для того, щоб значення ціх змінніх не могли змінюватіся, в їх опісі вікорістовується модіфікатор readonly. Значення такому полю можна прісвоюваті только при его оголошенні або в конструкторі класу. Приклада оголошення и Зміни:
float i=5.0F; static double D=0.443; byte b=67; D=i + b;