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

Бібліотека базових типів BCL

Читайте также:
  1. морфологічних типів статевого процесу
  2. Параметри основних типів антен радіорелейних станцій.
  3. Петрографічна характеристика основних типів гірських порід.
  4. Послідовність та відповідність стадій інтернаціоналізації діяльності, типів міжнародних фірм та форм міжнародного маркетингу.
  5. Створення базових таблиць і робота з ними
  6. Характеристика типів темпераменту.

Крім середовища CLR і специфікацій CTS і CLS, у складі платформи.NET поставляється бібліотека базових типів, яка є доступною для всіх мов програмування.NET. У цій бібліотеці містяться не тільки визначення різних примітивів, таких як потоки, файловий ввід-вивід, системи графічної візуалізації та механізми для взаємодії з різними зовнішніми пристроями, але також надається підтримка для цілого ряду служб, необхідних у більшості реальних додатків. Наприклад, у бібліотеці базових типів міститься визначення типів, які здатні спрощувати процес одержання доступу до баз даних, маніпулювання XML-документами, забезпечення програмної безпеки й створення WEB- та звичайних настільних і консольних інтерфейсів. Хоча вся бібліотека базових типів поділена на ряд окремих збірок, головною серед них є збірка mscorlib.dll. У цій збірці міститься велика кількість базових типів, що охоплюють широкий спектр типових задач програмування, а також базових типів даних, що використовуються у всіх.NET-сумісних мовах. При побудові.NET- додатків доступ до цієї збірки надається автоматично. На найбільш високому (загальному) рівні взаємозв’язок між CLR, CTS, CLS і бібліотекою базових типів виглядає так, як показано на мал. 1.

У бібліотеках базових типів для підтримки всіх типів у добре організованому виді технологією.NET широко використовується поняття простору імен (namespace). Під простором імен розуміється група зв’язних між собою з семантичної точки зору типів, які містяться у збірці. Наприклад, у просторі імен System.IO містяться типи, що мають відношення до операцій вводу-виводу, у просторі імен System.Data − основні типи для роботи із базами даних, і т.д. Дуже важливо розуміти, що в одній збірці (наприклад, mscorlib.dll) може міститися будь-яка кількість просторів імен, кожен з яких, у свою чергу, може містити довільне число типів.

Розбір найпростішої програми на мові С

Тепер давайте розглянемо ряд питань, у яких варто (навіть необхідно) розібратися для подальшого успішного вивчення платформи.NET Framework та мови C#. У першу чергу потрібно розглянути структуру програми та структуру методу Main(), точкою входу виконання будь-якої виконуваної збірки.

У мові С# вся логіка програми повинна міститися всередині визначення деякого типу (вище ми вже говорили, що тип являє собою загальний термін, яким позначається будь-який елемент із множини {клас, інтерфейс, структура, перерахування, делегат}). На відміну від багатьох інших мов (зокрема і С++), у С# не допускається створення ні глобальних функцій, ні глобальних змінних. Замість цього потрібно, щоб усі ці елементи містилися усередині визначення типу у вигляді методів, полів, тощо.

Розглянемо найпростішу програму на мові С#, текст якої наведено у лістингу 1.

Лістинг 1. Найпростіша програма на мові C#

using System; namespace MyTalkingSpace { class MyTalking { static void Main(string[] args) { //вивід повідомлення користувачам Console.WriteLine ("Hello All!"); Console.WriteLine ("Press any key to continue…"); //очікування натиснення деякої клавіші для завершення роботи Console.ReadKey(); } } }

Перейдемо до розбору програми. У ній ми визначили новий клас MyTalking. Причому ми його визначили у спеціальному (власному) просторі імен MyTalkingSpace. У C# логічне групування власних взаємозалежних типів у спеціальні простори імен здійснюється за допомогою ключового слова namespace{<реалізація власних типів>}. Клас MyTalking підтримує єдиний метод з іменем Main(). Клас, що визначає метод Main(), повинен обов’язково бути присутнім у кожному виконуваному додатку на С# (чи то консольна програма для Windows або служба Windows), оскільки він застосовується для позначення точки входу в додаток. Зверніть увагу, що у визначенні методу Main() присутнє ключове слово static, яке більш докладно ми розглянемо пізніше. Поки досить знати, що статичні (static) члени можуть викликатися без попереднього створення нового екземпляра класу. При визначенні методу Main() поряд із ключовим словом static можe також використовуватися одне із ключових слів public або private (за відсутності таких компілятор буде вважати, що це private).

Крім ключового слова static, даний метод Main() має ще один параметр − масив рядків (string[ ] args). Хоча у даному прикладі цей масив ніяк не обробляється, через даний параметр в принципі може передаватися будь-яка кількість аргументів командного рядка (процес отримання доступу до яких буде описаний трохи нижче). І, нарешті, даний метод Main() наведено у варіанті, коли він повертає значення void, що дозволяє не визначати явно тип результату цього методу з допомогою ключового слова return перед виходом із області дії даного методу.

Розглянутий варіант методу Main() є далеко не єдино можливим варіантом реалізації точки входу. Також допускається використовувати наступні варіанти методу Main():

//тип, що повертається методом int та масив рядків як параметр static int Main(string[] args) { //має обов’язково повертати значення перед виходом! return 0; }
//без типу, що повертається методом та без параметрів static void Main() { }
//тип, що повертається int, але без параметрів static int Main() { //має обов’язково повертати значення перед виходом! return 0; }

Очевидно, що вибір варіанту методу Main() залежить від двох моментів. По-перше, він залежить від того, чи потрібно, щоб системі після закінчення виконання методу Main() і завершення роботи програми поверталося якесь значення[4]; в цьому випадку необхідно повертати тип даних int, а не void. По-друге, цей вибір залежить від необхідності обробки параметрів командного рядка, що задаються користувачем; у цьому випадку вони повинні зберігатися в масиві рядків.

Повернемось до нашого прикладу. Логіка програми міститься всередині самого методу Main(). Тут використовується клас Console із простору імен System. До його членів входить статичний метод WriteLine(), який дозволяє відправляти рядок тексту й символ повернення каретки на стандартний пристрій виводу. Крім того, тут викликається метод Console.ReadKey(), щоб вікно командного рядка залишалося видимим доти, поки не буде натиснута деяка клавіша. У даному прикладі ми уникнули визначення типу з використанням повного уточнення (тобто насправді ми мали б писати System.Console.WriteLine()) завдяки використанню підтримуваного у С# ключового слова using. Тобто ключове слово using є просто скороченим способом використання повністю уточненого імені.

Ну, і на завершення розглянемо як можна обробляти масив args у методі Main(). Якщо ще хтось не зрозумів − у лістингу 1 наведено програму на C#, для виводу на консоль привітання всім «Hello all!». Розглянемо узагальнення (модифікацію) програми, текст якої наведено у лістингу 2.


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


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

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