Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
c#_theoretical_1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.07 Mб
Скачать

Загальна структура програми на мові 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 у консольний додаток потрібно виконати наступні дії:

  1. Запустити командний рядок: Start (меню «пуск»)→Run (пункт «виконати»).

  2. Запустити додаток cmd.exe

  3. Перейти у каталог де розташовується csc.exe: cd <каталог де розташовується csc.exe> (на моєму ПК це каталог C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319)

  4. Ввести одну із команд:

    1. csc D:\CSCMyTalking\MyTalking.cs

    2. 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]