
- •Тема 1 Програмна технологія Microsoft .Net. Вступ
- •Загальна характеристика платформи .Net Framework
- •Єдине середовище виконання clr
- •Єдина система типів cts
- •Бібліотека базових типів bcl
- •Розбір найпростішої програми на мові с
- •Загальна структура програми на мові c#
- •Створення .Net-додатків з використанням csc.Exe
- •Створення .Net-додатків на мові c# з використанням ide Visual с# 2010 Express
- •Тема 2 Класи в c# Вступ
- •Синтаксис опису класу
- •Поля класу
- •Методи класу
- •Властивості та індексатори
- •Конструктори
- •Деструктор
- •Перевантаження операцій
- •Частинні випадки класу
- •Структура «Раціональне число»
- •Тема 3 Основні засоби розробки класів у c# Вступ
- •Успадкування
- •Поліморфне успадкування
- •Агрегація та композиція
- •Абстрактні класи
- •Інтерфейси
- •Тема 4 Узагальнення Поняття узагальнених класів
- •Обмеження (constraints) для параметрів типу
- •Узагальнені методи
- •Узагальнені інтерфейси
- •Недолік обмеження операцій
Єдина система типів cts
Однією з основних переваг .NET є сильна міжмовна взаємодія. Синтаксис різних мов природно різний. Для того щоб різні типи (класи, інтерфейси, структури і т.п.) правильно сприймалися середовищем виконання .NET їх визначення повинні відповідати спеціально розробленій специфікації, яка називається єдина система типів (Common Type System, CTS). CTS визначає концепції для: класів; структур; інтерфейсів; перерахувань; компонентів типів; делегатів (у спрощеному виді це аналог покажчика на функцію С++). Також у CTS передбачений набір вбудованих типів даних, єдиний для всіх мов програмування.
Однак не всі мови програмування можуть працювати з усіма вбудованими типами (наприклад Visual Basic не підтримує знакові (signed) та беззнакові (unsigned) змінні. Крім цього в деяких мовах є можливості, що не підтримуються іншими мовами (наприклад Visual Basic не підтримує перевантаження операторів). У зв’язку із цим був розроблений набір правил, дотримання якого гарантує нормальне міжмовну взаємодію (cross-language interoperability). Цей набір правил називається Common Language Specification (CLS). Із цього не випливає, наприклад, що в класі C# не можна перевантажувати оператори. Просто для CLS-cумісності необхідно щоб поряд з перевантаженим оператором у класі був також метод-аналог. Взагалі CLS стосується тільки тих частин програми, які є доступними за межами збірки. Внутрішня (інкапсульована) реалізація може й не відповідати вимогам міжмовної сумісності.
Бібліотека базових типів bcl
Крім середовища CLR і специфікацій CTS і CLS, у складі платформи .NET поставляється бібліотека базових типів, яка є доступною для всіх мов програмування .NET. У цій бібліотеці містяться не тільки визначення різних примітивів, таких як потоки, файловий ввід-вивід, системи графічної візуалізації та механізми для взаємодії з різними зовнішніми пристроями, але також надається підтримка для цілого ряду служб, необхідних у більшості реальних додатків. Наприклад, у бібліотеці базових типів міститься визначення типів, які здатні спрощувати процес одержання доступу до баз даних, маніпулювання XML-документами, забезпечення програмної безпеки й створення WEB- та звичайних настільних і консольних інтерфейсів. Хоча вся бібліотека базових типів поділена на ряд окремих збірок, головною серед них є збірка mscorlib.dll. У цій збірці міститься велика кількість базових типів, що охоплюють широкий спектр типових задач програмування, а також базових типів даних, що використовуються у всіх .NET-сумісних мовах. При побудові .NET- додатків доступ до цієї збірки надається автоматично. На найбільш високому (загальному) рівні взаємозв’язок між CLR, CTS, CLS і бібліотекою базових типів виглядає так, як показано на мал. 1.
У бібліотеках базових типів для підтримки всіх типів у добре організованому виді технологією .NET широко використовується поняття простору імен (namespace). Під простором імен розуміється група зв’язних між собою з семантичної точки зору типів, які містяться у збірці. Наприклад, у просторі імен System.IO містяться типи, що мають відношення до операцій вводу-виводу, у просторі імен System.Data − основні типи для роботи із базами даних, і т.д. Дуже важливо розуміти, що в одній збірці (наприклад, mscorlib.dll) може міститися будь-яка кількість просторів імен, кожен з яких, у свою чергу, може містити довільне число типів.