Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лістинг 2. Текст програми на мові C#, яка виводить на консоль привітання тільки тим користувачам, імена яких передаються як параметри командного рядка

Читайте также:
  1. A10. Укажите правильную морфологическую характеристику слова ГОТОВЫ из четвертого (4) предложения текста.
  2. A28. Какое высказывание противоречит содержанию текста?
  3. A28. Какое высказывание противоречит содержанию текста?
  4. A9. Укажите верную характеристику второго (2) предложения текста.
  5. ATTENTION!! тут не описано как проверять партиклы! только модель с текстурами
  6. Cтворення командного файла
  7. FontBold, Fontltalic, FontName, FontSize, FontUnderline определяют шрифты текста метки.
using System; namespace MyTalkingSpace { class MyTalking { static void Main(string[] args) { //вивід привітання тільки тим користувачам, імена яких //передаються як параметри командного рядка for(int i = 0; i < args.Length; i++) { if(args[i]=="/d" || args[i]=="-d") { i++; Console.WriteLine ("Hello dear {0}!", args[i]); } Else { Console.WriteLine ("Hello {0}!", args[i]); } } Console.WriteLine ("Press any key to continue…"); //очікування натиснення деякої клавіші для завершення роботи Console.ReadKey(); } } }

У даній модифікації програми продемонстровано один із можливих способів обробки будь-яких можливих параметрів командного рядка, а саме використання циклу for[5]. За допомогою властивості Length типу System.Array визначається кількість елементів у масиві args. При проході по масиву args: якщо значення елемента є опцією (ми визначили єдину опцію, що відповідає одному із записів /d або -d), то на консоль виводиться привітання для наступного елемента із приставкою dear, інакше − виводиться привітання для поточного елемента у звичному форматі.

Загальна структура програми на мові 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.cs[8].

Тепер давайте ознайомимося із ключовими опціями компілятора С#. Перш за все потрібно з’ясувати, як вказувати ім’я та тип створюваної збірки (тобто, наприклад, консольний додаток з іменем 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 у консольний додаток потрібно виконати наступні дії:

1. Запустити командний рядок: Start (меню «пуск»)→Run (пункт «виконати»). 2. Запустити додаток cmd.exe 3. Перейти у каталог де розташовується csc.exe: cd <каталог де розташовується csc.exe> (на моєму ПК це каталог C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319) 4. Ввести одну із команд: a. csc D:\CSCMyTalking\MyTalking.cs b. csc /out:D:\CSCMyTalking\prMyTalking.exe /t:exe D:\CSCMyTalking\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.

Створення.NET-додатків на мові C# з використанням IDE Visual С# 2010 Express

Улітку 2004 р. компанія Microsoft представила зовсім нову лінійку IDE під загальною назвою Express (http://mscin.microsoft.com/express). На сьогоднішній день на ринку пропонується декілька продуктів цього сімейства (усі вони безкоштовно поширюються, підтримуються та обслуговуються компанією Microsoft).

• Visual Web Developer 2010 Express. Спрощений інструмент для розробки динамічних веб-сайтів ASP.NET і служб WCF.

• Visual Basic 2010 Express. Спрощений інструмент для програмування, найбільш підходить для програмістів-початківців та у навчальних цілях, зокрема, для освоєння технологій створення додатків із застосуванням дружнього до користувачів синтаксису Visual Basic.

• Visual C# 2010 Express та Visual C++ 2010 Express. IDE, які орієнтовані спеціально на студентів і всіх інших бажаючих навчитися основам програмування з використанням відповідного синтаксису.

• SQL Server Express. Система для керування базами даних початкового рівня, призначена для початківців.


Тема 2

 

Класи в C#

Вступ

У рамках ООП програмна реалізація об’єктів, отриманих у результаті об’єктної декомпозиції, повинна проводитися у відповідності до декількох принципів.

Перший принцип − абстрагування. Абстрагування − процес виділення абстракцій у предметній області задачі. Абстракція − сукупність істотних характеристик деякого об’єкта, які відрізняють його від усіх інших видів об’єктів і, таким чином, чітко визначають особливості даного об’єкта з погляду подальшого його розгляду та аналізу.

Рівень абстракції при об’єктній декомпозиції передбачає об’єднання всіх характеристик об’єкта (як структурних так і поведінкових) у єдину програмну одиницю. Такою програмною одиницею є спеціальний тип даних − клас, який визначається програмістом. Отже, у програмуванні клас − це складений тип даних, який включає опис полів даних, а також функцій (підпрограм), що працюють із цими полями даних. Стосовно класів такі підпрограми отримали назву методів.

Для представлення об’єктів предметної області у програмі використовуються змінні типу клас. Змінні типу клас називають об’єктами-змінними або екземплярами класу. На мал. 3 показано зв’язок об’єктів предметної області, класів та об’єктів-змінних.

Мал. 3. Відповідність об’єктів предметної області, класам та об’єктам-змінним

 

Поля, описані в класі, використовують для зберігання складових стану об’єкта. Наприклад, якщо об’єкт «Функція» повинен зберігати номер функції, то клас, за допомогою якого представляється цей об’єкт, повинен містити відповідне поле.

Кожний метод визначає реакцію на деяке зовнішнє або внутрішнє повідомлення. Наприклад, об’єкт «Меню операцій» повинен реагувати на повідомлення «Активізувати». Одержавши це повідомлення, об’єкт повинен вивести меню операцій і організувати коректну роботу із цим меню, тобто при виборі деякої операції формувати повідомлення про некоректність вибору чи формувати повідомлення для відповідного об’єкту, передаючи йому керування, а одержавши керування назад, знову вивести своє меню та очікувати введення номера операції.

Із принципом абстрагування тісно пов’язаний принцип обмеження доступу. Обмеження доступу − приховання окремих елементів реалізації абстракції, які не зачіпають істотних характеристик її як цілого. Необхідність обмеження доступу передбачає розмежування двох частин в описі абстракції:

інтерфейс − сукупність доступних ззовні елементів реалізації абстракції (основні характеристики стану та поведінки);

реалізація − сукупність недоступних ззовні елементів реалізації абстракції (внутрішня організація абстракції та механізми реалізації її поведінки).

Поєднання об’єднання всіх параметрів об’єкта (як стану так і поведінки) у єдину абстракцію та обмеження доступу до реалізації цих властивостей одержало назву інкапсуляції. З погляду програмування це означає, що окремі поля та методи не повинні мати доступу за межами цього класу.


Дата добавления: 2015-10-26; просмотров: 177 | Нарушение авторских прав


Читайте в этой же книге: Загальна характеристика платформи .Net Framework | Властивості та індексатори | Агрегація та композиція | Абстрактні класи | Недолік обмеження операцій | Деякі класи неузагальнених колекцій | Організація роботи із файлами даних стандарту XML | Делегати в якості параметрів | Події: створення та обробка |
<== предыдущая страница | следующая страница ==>
Бібліотека базових типів BCL| Синтаксис опису класу

mybiblioteka.su - 2015-2024 год. (0.011 сек.)