
- •Тема 1 Програмна технологія Microsoft .Net. Вступ
- •Загальна характеристика платформи .Net Framework
- •Єдине середовище виконання clr
- •Єдина система типів cts
- •Бібліотека базових типів bcl
- •Розбір найпростішої програми на мові с
- •Загальна структура програми на мові c#
- •Створення .Net-додатків з використанням csc.Exe
- •Створення .Net-додатків на мові c# з використанням ide Visual с# 2010 Express
- •Тема 2 Класи в c# Вступ
- •Синтаксис опису класу
- •Поля класу
- •Методи класу
- •Властивості та індексатори
- •Конструктори
- •Деструктор
- •Перевантаження операцій
- •Частинні випадки класу
- •Структура «Раціональне число»
- •Тема 3 Основні засоби розробки класів у c# Вступ
- •Успадкування
- •Поліморфне успадкування
- •Агрегація та композиція
- •Абстрактні класи
- •Інтерфейси
- •Тема 4 Узагальнення Поняття узагальнених класів
- •Обмеження (constraints) для параметрів типу
- •Узагальнені методи
- •Узагальнені інтерфейси
- •Недолік обмеження операцій
Загальна структура програми на мові c#
Програма на мові C# може складатися з одного або декількох файлів. Кожен файл може містити декілька просторів імен. Простір імен може включати такі елементи, як класи, структури, інтерфейси, переліки та делегати, а також інші простори імен. Нижче наведена загальна структура програми C#, що містить усі зазначені елементи.
// Загальна структура програми на мові C# using System; namespace YourNamespace { class YourClass { } struct YourStruct { } interface IYourInterface { } delegate int YourDelegate(); enum YourEnum { } namespace YourNestedNamespace { struct YourStruct { } } class YourMainClass { static void Main(string[] args) { // Ваша програма починається тут... } } } |
Створення .Net-додатків з використанням csc.Exe
Одним із стереотипів в області розробки .NET-додатків є те, що програмістам нібито обов’язково потрібно мати у наявності інтегроване середовище розробки6 (Integrated Development Environment — IDE) Visual Studio для того, щоб розробляти програми на С#. Тут доречно відмітити, що крім згаданого до таких засобів розробки належить і безкоштовне IDE з відкритим вихідним кодом SharpDevelop, яке за своїми функціональними можливостями не поступається багатьом комерційним аналогам. Безперечно використання IDE для розробки .NET-додатків на мові С# є найбільш зручним для програміста.
Але насправді для створення будь-якого .NET-додатку достатньо безкоштовного та доступного для завантаження комплекту інструментів для розробки програмного забезпечення .NET Framework 4.0 SDK (Software Development Kit)7. У цьому пакеті поставляються численні керовані компілятори, утиліти командного рядка, приклади коду, бібліотеки класів .NET та повна довідкова система. Якщо для розробки програм використовується Visual Studio 2010 або Visual C# 2010 Express, то слід мати на увазі, що у встановленні .NET Framework 4.0 SDK немає ніякої необхідності. При встановленні кожного зі згаданих продуктів цей пакет SDK встановлюється автоматично.
У дійсності необхідність у створенні великих додатків з використанням одного лише компілятора С# (програма csc.exe, csc означає C-sharp compiler) у режимі командного рядка може ніколи і не виникнути, проте, важливо розуміти загалом, як вручну компілювати файли коду. Освоєння цього процесу є корисним перш за все у плані більш поглибленого пізнання C#. Зокрема розуміння такого підходу дозволяє отримувати аналогічні навики при роботі з іншими інструментами командного рядка, що входять до складу .NET Framework 4.0 SDK, оскільки цілий ряд важливих утиліт працює винятково в режимі командного рядка.
Давайте побудуємо за допомогою компілятора С# та текстового редактора Notepad (Блокнот) просту виконувану збірку. Для цього спочатку необхідно підготувати вихідний код. Відкриємо Блокнот та введемо код наведений у лістингу 1. Після закінчення введення збережемо файл (наприклад, у каталозі D:\CSCMyTalking) під іменем MyTalking.cs8.
Тепер давайте ознайомимося із ключовими опціями компілятора С#. Перш за все потрібно з’ясувати, як вказувати ім’я та тип створюваної збірки (тобто, наприклад, консольний додаток з іменем MyShell.exe, бібліотеку коду з іменем MathLib.dll або додаток Windows Presentation Foundation з іменем MyWPFAppl.exe). Для кожного із можливих варіантів компіляторові сsc.ехе потрібно передати вказівку у вигляді параметру командного рядка (табл. 1).
Таблиця 1. Деякі9 параметри компілятора С# для роботи з вихідними файлами
Параметр |
Опис |
/out:<ім’я файлу> |
Цей параметр застосовується для задання імені створюваної збірки. За замовчуванням збірці присвоюється таке ж ім’я, як і у файлу з головним класом |
/target:exe або /t:exe |
Цей параметр дозволяє створювати, виконуваний консольний додаток. Така збірка генерується за замовчуванням, тому при створенні подібного додатку даний параметр можна опускати |
/target:library або /t:library |
Цей параметр дозволяє створювати однофайлову збірку у вигляді бібліотеки *.dll |
/target:module або /t:module |
Цей параметр дозволяє створювати модуль. Модулі є елементами багатофайлових збірок, |
/target:winexe або /t:winexe |
Цей параметр застосовується для виконуваних файлів Windows. Хоча додатки із графічним інтерфейсом користувача можна створювати із застосуванням параметра /target:exe, параметр /target:winexe дозволяє запобігти відкриттю вікна консолі під іншими вікнами збірки. Іноді містить також засоби та різноманітні інструменти для спрощення конструювання графічного інтерфейсу користувача. |
Отже для того, щоб скомпілювати файл коду на мові C# MyTalking.cs у консольний додаток потрібно виконати наступні дії:
|
У першому випадку у каталозі <каталог де розташовується csc.exe> буде створено виконуваний у консольному режимі файл з іменем MyTalking.exe. У другому випадку у каталозі D:\CSCMyTalking буде створено виконуваний у консольному режимі файл з іменем prMyTalking.exe.
Давайте розглянемо ще, як скомпілювати додаток, у якому використовуються типи, визначені в окремій збірці .NET. Для цього спочатку створимо власну збірку-бібліотеку, яка буде містити байт-код класу MyLexicon. Цей клас буде відповідати за «словниковий запас» нашої програми. Найпростіший варіант програмної реалізації такого класу наведено у лістингу 3.
Лістинг 3. Приклад реалізації класу MyLexicon на мові C#
using System; namespace MyLexiconSpace { public static class MyLexicon { public static void SayHelloAll() { Console.WriteLine("Hello All!"); } } } |
Наведена реалізація містить загальнодоступний статичний клас MyLexicon із єдиним загальнодоступним статичним методом SayHelloAll(). При такій реалізації вихідна програма (лістинг 1) може бути переписана:
Лістинг 4. Реалізація класу MyTalking з використанням класу MyLexicon
using System; using MyLexiconSpace; namespace MyTalkingSpace { class MyTalking { static void Main(string[] args) { //вивід повідомлення користувачам MyLexicon.SayHelloAll(); Console.WriteLine ("Press any key to continue…"); //очікування натиснення деякої клавіші для завершення роботи Console.ReadKey(); } } } |
Створимо файл D:\CSCMyTalking\MyLexicon.cs із текстом лістингу 3 та скомпілюємо його у збірку-бібліотеку MyLexicon.dll. Для компіляції потрібно задати (див. вище) команду:
csc /out:D:\CSCMyTalking\MyLexicon.dll /t:library D:\CSCMyTalking\MyLexicon.cs |
Внесемо зміни у файл D:\CSCMyTalking\MyTalking.cs у відповідності до лістингу 4. Тепер, щоб скомпілювати цей файл у виконувану збірку у командному рядку потрібно проінформувати компілятор csc.ехе про те, у якій збірці містяться використовувані нами простори імен. Оскільки нами при реалізації програми використовувався клас MyLexicon із простору імен MyLexiconSpace, то нам необхідно вказати компілятору на збірку D:\CSCMyTalking\MyLexicon.dll, що робиться за допомогою опції /reference (або скороченої версії /r):
csc /r: D:\CSCMyTalking\MyLexicon.dll /out:D:\CSCMyTalking\MyTalking.exe /t:exe D:\CSCMyTalking\MyTalking.exe |
Якщо для csc.exe необхідно вказати декілька зовнішніх збірок, то для опції /r достатньо просто перерахувати всі збірки через крапку з комою.
Ну і на завершення, якщо комусь незрозуміло, яким чином компілятору С# вдалося розпізнати посилання на клас System.Console, то згадайте сказане вище, що під час процесу компіляції відбувається автоматичне додавання посилання на mscorlib.dll.