Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛабРаб_ООП

.pdf
Скачиваний:
145
Добавлен:
27.05.2015
Размер:
1.37 Mб
Скачать

застосувань Windows. Ви можете проектувати заснований на формі інтерфейс користувача інтерактивно, використовуючи Visual Designer. Visual Studio 2005 тоді згенерує програмний код, що реалізує проектований вами інтерфейс.

З сказаного вище виходить, що Visual Studio 2005 підтримує два представлення застосування: Design View і Code View. Вікно Code and Text Editor може відображати обидва ці уявлення, і ви можете перемикатися на будь-яке з них.

У цій вправі ви навчитеся створювати графічні застосування Windows на C# в Visual Studio 2005. Ця програма відображатимемо просту форму, що містить текстове поле, в якому ви можете ввести своє ім'я, і кнопку, при клацанні на якій відображатиметься персоніфіковане вітання у вікні повідомлення. Ви використовуватимете Visual Designer для створення призначеного для користувача інтерфейсу шляхом переміщення елементів управління на форму, вивчите код, що згенерувала Visual Studio 2005, використовуватимете Visual Designer для зміни властивостей елементів управління, використаєте Visual Designer для зміни розмірів форми, напишете код обробника натиснення на кнопку і запустите ваше перше графічне застосування Windows.

1.У меню File виберіть New, а потім Project. Відкриється діалогове вікно New Project.

2.У панелі Project types виберіть Visual C#, Window. У панелі Templates виберіть Windows Application.

3.Переконайтеся, що поле Location указує на ваш робочий каталог.

4.У полі Name надрукуйте WinFormHello.

5.Переконайтеся, що в полі Solution вибране Create new Solution. Це приведе до створення нового Рішення для підтримки застосування Windows. Як альтернатива можна було вибрати

Add to Solution, і тоді новий проект додасться до Рішення TextHello.

6.Клацніть OK. Visual Studio 2005 закриє вікно вашого попереднього застосування, створить і відобразить порожню форму Windows у вікні Design View.

11

Створення призначеного для користувача інтерфейсу.

7.Клацніть закладку Toolbox, яка відображається зліва від форми у вікні Design View. Панель Toolbox розкриється, частково закриваючи форму, і відобразить різні компоненти і елементи управління, які ви можете помістити на форму.

8.У панелі Toolbox клацніть по знаку + поряд з Common Controls щоб відобразити список елементів управління, найчастіше використовуваних застосуваннями Windows.

9.Клацніть Label, а потім клацніть на видимій частині форми. Елемент Label додасться на форму, і панель Toolbox закриється.

10.Елемент Label знаходиться, можливо, не на тому місці, де ви хочете. Ви можете виділити його і перемістити в потрібне місце форми. Перемістіть його в лівий верхній кут форми.

11.У меню View виберіть Properties Window. Вікно Properties з'явиться в правій частині екрану. Вікно Properties дозволяє вам встановлювати властивості елементів проекту. Воно контекстно залежне і відображає властивості виділеного елементу.

12.Виділіть елемент Label на формі. У вікні Properties знайдіть властивість Text, змініть її з label1 на Enter your name і натисніть Enter. На формі текст мітки зміниться на Enter Your Name.

13.Знову активізуйте панель Toolbox. Клацніть TextBox а потім клацніть на формі. Елемент TextBox додасться на форму. Перемістіть елемент TextBox так, щоб він розташувався під елементом Label.

14.Припускаючи, що елемент TextBox виділений, знайдіть його властивість Text у вікні Properties, наберіть here і натисніть Enter. На формі слово here з'явиться в елементі

TextBox.

15.У вікні Properties знайдіть властивість (Name). Visual Studio 2005 дає всім елементам управління і формам імена за умовчанням, які хоч і є хорошою стартовою позицією, але не завжди дуже виразні. Зміните ім'я елементу TextBox на userName.

16.Знову активізуйте панель Toolbox. Клацніть Button а потім клацніть на формі. Перетягніть елемент Button і розташуйте його праворуч від елементу TextBox.

17.Використовуючи вікно Properties, змініть властивість Text кнопки на OK. Змініть її властивість (Name) на ok. Заголовок на кнопці зміниться.

18.Клацніть Form1 form у вікні Design View. На межах форми з'являться маркери зміни розміру.

19.Використовуючи маркери зміни розміру, змініть розмір форми так, щоб вона виглядала приблизно так:

12

20.У Solution Explorer натисніть праву кнопку миші на файлі Form1.cs, а потім клацніть View Code. Початковий файл Form1.cs з'явиться у вікні Code and Text Editor. Тепер ми маємо дві закладки з ім'ям Form1.cs вище Code and Text Editor/Design View window. Ви можете у будьякий час клацнути на одній з них з суфіксом [Design], щоб повернутися у вікно Design View.

Файл Form1.cs містить код, що автоматично згенерувала Visual Studio 2005. Ви можете відзначити наступні елементи:

Директиви using

Visual Studio 2005 помістила ряд директив using в початок файлу початкового коду. Наприклад

using System.Windows.Forms;

Це додаткові простори імен (namespaces), що містять класи і елементи управління, які використовуються при розробці графічних застосувань Windows, – наприклад класи

TextBox, Label і Button.

Простір імен

Visual Studio 2005 використала ім'я проекту як ім'я простору імен застосування верхнього рівня.

namespace WinFormHello

{

...

}

Клас

Visual Studio 2005 створила клас, названий Form1, в просторі імен WinFormHello

namespace WinFormHello

{

partial class Form1 ...

{

...

}

}

Цей клас представляє форму, спроектовану вами в Design View. Цей клас містить конструктор, який викликає метод InitializeComponent, і нічого більшого. Проте Visual Studio 2005 виконує “спритний трюк” і приховує від нас частину коду, і це можна продемонструвати.

Щоб відобразити прихований код поверніться в Solution Explorer і натисніть кнопку Show All Files. З'являться директорії bin та obj, набагато більші, ніж при розробці консольних застосувань. При цьому зверніть увагу на те, що Form1.cs тепер має знак +. Якщо ви клацнете на цьому плюсі, ви побачите файл з ім'ям Form1.Designer.cs і файл з ім'ям Form1.resx.

Виконайте подвійне клацання на файлі Form1.Designer.cs щоб відобразити його вміст у вікні Code and Text Editor. Ви побачите решту частини коду класу Form1. C# дозволяє вам розбити код для класу на декілька початкових файлів, при цьому кожна частина класу позначається своїм ключовим словом. Цей файл містить регіон, помічений як Windows Form Designer generated code. Розкриття цього регіону клацанням по + показує

13

код, створений і підтримуваний Visual Studio 2005, коли ви редагуєте форму у вікні Design View. Поточний вміст цього файлу включає:

Метод InitializeComponent

Цей метод згадується у файлі Form1.cs. Оператори усередині цього методу встановлюють властивості елементів управління, які ви додали на форму в Design View. Деякі з операторів цього методу, відповідні діям, виконаним вами у вікні Properties, показані нижче.

...

private void InitializeComponent()

{

this.label1 = new System.Windows.Forms.Label();

this.userName = new System.Windows.Forms.TextBox();

this.ok = new System.Windows.Forms.Button();

...

this.label1.Text = "Enter your name";

...

this.userName.Text = "here";

...

this.ok.Text = "OK";

...

}

...

Три поля

Visual Studio 2005 створила три поля усередині поля Form1. Ці поля можна знайти ближче до кінця файлу:

private System.Windows.Forms.Label label1;

private System.Windows.Forms.TextBox userName;

private System.Windows.Forms.Button ok;

...

Ці поля відповідають трьом елементам управління, які ви додали на форму в Design View.

Варто відзначити, що хоча цей файл (Form1.Designer.cs) цікавий для огляду, ви не повинні ніколи редагувати його вміст безпосередньо. Visual Studio 2005 автоматично модифікує цей файл, коли ви вносите зміни до Design View. Будь-який код, який вам потрібно написати самостійно, повинен бути розміщений у файлі Form1.cs.

Можливо, вас ще цікавить, де знаходиться метод Main, і як відображається форма у момент запуску застосування. Пам'ятаєте, що Main визначає точку входу в програму. У вікні Solution Explorer ви, напевно, відмітили інший файл початкового коду, названий Program.cs. При подвійному клацанні на цьому файлі з'явиться наступний код у вікні Code and Text Editor:

namespace WinFormHello

{

static class Program

{

///<summary>

///The main entry point for the application.

///</summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles(); Application.Run(new Form1());

}

}

14

}

Ви можете ігнорувати більшу частину цього коду. Проте ключовим оператором тут є оператор

Application.Run(new Form1());

Цей оператор створює форму і показує її, після чого форма починає діяти.

А зараз ми вивчимо, як додати код, який працюватиме при натисненні на кнопку OK на формі.

Написання коду для кнопки OK.

21.Клацніть закладку Form1.cs[Design], розташовану вище за вікно Code and Text Editor, щоб відобразити Form1 в режимі Design View.

22.Помістіть курсор миші над кнопкою OK на формі і виконайте подвійне клацання. У вікні редактора Code and Text Editor завантажиться файл початкового коду Form1.cs. Visual Studio 2005 додала метод ok_Click в клас Form1. (Вона також додала оператора в метод InitializeComponent у файлі Form1.Designer.cs для автоматичного виклику ok_Click коли кнопка OK буде натиснута. Це було зроблено за допомогою делегатів, яких ми вивчатимемо трохи пізніше.)

23.Надрукуйте оператора MessageBox, показаного нижче, усередині методу ok_Click. Повністю цей метод виглядатиме так:

private void ok_Click(object sender, System.EventArgs e)

{

MessageBox.Show("Hello " + userName.Text);

}

Зараз ви готові до запуску вашого графічного застосування Windows.

24.Запуск застосування. У меню Debug виберіть пункт Start Without Debugging. Visual Studio 2005 збереже вашу роботу, відтранслює програму і запустить її.

Методичні вказівки і теоретичні відомості.

Що таке .NET Framework

.NET Framework – це платформа розробки для створення застосувань, які легко розгортаються і виконуються на різних апаратних платформах і різних операційних системах. Ця портованість досягається за рахунок стандартизації, що продовжується, в організаціях ECMA і ISO. Таким чином .NET Framework пропонує незалежність від мови програмування, поставляючи міжнародний стандарт, званий Common Language Infrastructure (CLI). Мова програмування, сумісна з цією платформою, повинна дотримуватися стандарту, визначеного в Common Language

Specification (CLS).

Зараз .NET Framework інсталюється поверх операційної системи (поточна версія – .NET Framework 2.0), а в майбутній операційній системі Windows Vista ця платформа підтримуватиметься на рівні операційної системи. .NET Framework складають два шари, як показано на малюнку 1: загальномовне середовище виконання (Common Language Runtime

CLR), схоже на віртуальну машину Java, і велика бібліотека класів, звана Framework Class Library (FCL), яка надає сервіси застосуванням.

15

Мал. 1. Огляд .NET Framework

Загальномовне середовище виконання

Загальномовне середовище виконання .NET — нове могутнє середовище розробки від Microsoft, що забезпечує унікальні можливості по міжпрограмній і міжплатформеній інтеграції програмних засобів. Для її реалізації була розроблена єдина концепція використання керованого коду. Ми розглянемо основні принципи побудови платформи .NET, внутрішній устрій середовища виконання, загальні принципи роботи віртуальних машин, а також природу і устрій керованого коду. Ви дізнаєтеся, для чого створювалося середовище виконання, і які задачі воно здатне вирішити [5].

Архітектура середовища виконання .NET

Загальномовне середовище виконання (Common Language Runtime, CLR) — це загальне незалежне віртуальне програмне середовище для застосувань, що забезпечує ефективне і контрольоване виконання призначеного для користувача коду, а також що надає розробникам програмних систем широкий спектр різноманітних сервісів. Воно істотно полегшує розробку сучасних застосувань, поєднуючи в собі багато переваг технології RAD (Rapid Application Development, Швидка Розробка Застосувань), з високою продуктивністю і швидкістю роботи кінцевих застосувань. Структурно загальномовне середовище виконання .NET складається з двох компонентів: віртуальної машини і загальної бібліотеки класів.

Віртуальна машина відповідає за виконання коду, а загальна бібліотека класів надає розробникам чітко стандартизований набір типів. Початкова мова програмування, на якій написано застосування для середовища .NET, не має значення; від транслятора мови лише потрібне уміння генерувати "керований" код, який розуміє віртуальна машина .NET. Такий код працює тільки в середовищі CLR, що забезпечує повний контроль над всіма процесами при виконанні застосування.

Керований код — нове поняття, введене розробниками Microsoft, яке спочатку викликає утруднення для розуміння у більшості програмістів [5]. Його особливістю є те, що він виконується під постійним наглядом середовища виконання, яке контролює всі його кроки. Саме із-за такого сильного контролю і нагляду було вирішено назвати код керованим. Він представляється в спеціальному форматі, званому .NET байт-код. Для візуального представлення внутрішнього .NET байт-коду розроблена мова IL (Intermediate Language, Проміжна Мова Microsoft). По суті справи, вона знаходиться на одному рівні з .NET байт-кодом, але це не сам байт-код, а лише його текстове представлення. Для порівняння можна сказати, що IL і .NET байткод співвідносяться, як асемблер і машинний код. Таким чином, всі застосування поставляються для виконання на віртуальній машині .NET у вигляді уніфікованого .NET байт-коду.

Для створення низькорівневого байт-коду з високорівневої мови, використовуються відповідні компілятори. Створювати застосування .NET можливо більш ніж на десяти різних мовах програмування високого рівня [5]. При цьому загальні стандарти середовища виконання .NET, в особі загальномовної специфікації CLS (Common Language Specification) і загальної системи типів CTS (Common Type System), гарантуватимуть інтеграцію коду незалежно від початкової мови, використаної для створення застосування.

16

Інтеграція коду має на увазі повну сумісність коду на всіх рівнях: починаючи від стандартів визначення типів і закінчуючи моделлю підтримки асинхронних подій. Наприклад, ви можете визначити клас за допомогою мови С#, а успадкувати його, використовуючи Visual Basic .NET (VB .NET). Особливістю системи .NET є використання оригінальної технології інтеграції коду, яка забезпечує сумісність коду не на рівні виконуючого ядра (процесора, віртуальної машини .NET), а на рівні самої програмної моделі. Раніше, коли створювався код для процесорів з використанням ортодоксальних компіляторів, основним завданням програмістів було забезпечення лише односторонньої сумісності з самим процесором, розробники якого вводили власні стандарти на машинний код, практично не думаючи про користувачів мов високого рівня. В результаті, сформований машинний код представляв всього лише послідовний набір команд для процесора, який наказував йому зробити певні дії.

NET байт-код є не просто набором команд для віртуальної машини .NET. Він якісно відрізняється від машинного коду наявністю повного опису внутрішньої структури програми, починаючи від локальної змінної і закінчуючи класами і просторами імен. Фактично, при класичній компіляції в машинний код повністю втрачається інформація про внутрішній устрій програми, яка за великим рахунком і не потрібна для її виконання. Зате така інформація життєво необхідна при рішенні задач міжмовної і міжпрограмної інтеграції. При компіляції в керований .NET байт-код втрат цієї інформації не відбувається і повне уявлення про внутрішню організацію програми зберігається в спеціальних структурах, званих метаданими. Таким чином, технологія керованого байт-коду дає величезні переваги у вигляді міжмовної інтеграції і крос-платформовій переносимості коду. Але всі переваги підходу можуть бути зведені до мінімуму низькими показниками продуктивності із-за повної віртуалізації виконання байт-коду. Практичним підтвердженням тому можуть служити Java (класична машина від Sun) і Microsoft Visual Basic .NET (ранніх версій) [5]. Продуктивність при виконанні коду обох систем залишає бажати багато кращого.

Існує два види віртуальних машин — що інтерпретують і компілюють. Інтерпретуючі машини виконують код, повністю емулюючи його роботу. Фактично, вони самі виконують код увірених їм застосувань. Тобто на кожну інструкцію байт-коду, що інтерпретується, доводиться N інструкцій інтерпретатора віртуальної машини. У результаті, відбувається значне зниження швидкості виконання програми. За що і не люблять віртуальні машини такого типу.

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

Для реалізації подібного підходу у віртуальній машині потрібна наявність дуже важливого компоненту – компілятора часу виконання JIT (Just-In-Time Compiler), який забезпечує трансляцію .NET байт-коду в машинний прямо по ходу виконання програми. Такі компілятори зазвичай називають двійковими. По всіх тестах на продуктивність, проведених для платформи

.NET, вона практично ні в чому не поступається класичним компілюючим системам, а по деяких – навіть перевершує їх. З докладними звітами цих тестів можна ознайомитися на сайті http://www. rsdn.ru [5].

Середовище виконання .NET може базуватися на різних апаратних (Intel, Pocket РС) і програмних платформах (Windows, FreeBSD, MacOS, Linux). Для кожної підтримуваної апаратної і програмної платформи повинна існувати власна реалізація подібного компілятора і для кожної нової апаратної платформи розробникам доведеться створювати власний ЛТ-компілятор, який переводитиме

17

універсальний незалежний .NET байт-код в конкретний машинний код. У цьому полягає, мабуть, основний недолік цієї технології [5].

У загальному вигляді внутрішній устрій віртуальної машини .NET можна представити таким чином (мал. 2).

Мал. 2. Загальна схема віртуальної виконуючої машини .NET

Загальна бібліотека класів

Загальна бібліотека класів .NET від Microsoft (Framework Class Library, FCL) могутня і різноманітна і надає користувачеві величезний спектр сервісів. Перерахувати їх повністю не представляється можливим, приведемо лише деякі з них (Таблиця 1) [5]. Число класів бібліотеки FCL велике (декілька тисяч). Тому знадобився спосіб їх структуризації. Логічно класи з близькою функціональністю об'єднуються в групи, звані простором імен (Namespace).

Основним простором імен бібліотеки FCL є простір System, що містить як класи, так і інші вкладені простори імен. Так, примітивний тип int безпосередньо вкладений в простір імен System і його повне ім'я, що включає ім'я простору, - System.Int32.

У простір System вкладений цілий ряд інших просторів імен. Наприклад, в просторі System.Collections знаходяться класи і інтерфейси, що підтримують роботу з колекціями об'єктів - списками, чергами, словниками. У простір System.Collections, у свою чергу, вкладений простір імен Specialized, що містять класи із спеціалізацією, наприклад, колекції, елементами яких є тільки рядки. Простір System.Windows.Forms містить класи, використовувані при створенні Windowsзастосувань. Клас Form з цього простору задає форму – вікно, що заповнюється елементами управління, графікою, забезпечує інтерактивну взаємодію з користувачем [30].

Таблиця 1. Набір основних сервісів, що надаються через загальну бібліотеку класів

Простір імен

Сервіси класу

System

Базові типи, використовувані всіма застосуваннями.

System.Collections

Колекції для зберігання наборів об'єктів

System.Drawing

Сервіси для роботи з двовимірною графікою

System.IO

Підтримка потокового введення виведення, у тому числі і

 

файлового

System.Net

Підтримка мережевої взаємодії

System.Resources

Сервіси для роботи з ресурсами

 

18

System.Security

Сервіси підтримки захисту і безпеки

System.Text

Сервіси для

роботи з текстом

System.Threading

Сервіси підтримки багатопотокового коду

System.Xml

Сервіси для

роботи з даними у форматі XML

System.Web.Services

Засоби, призначені для створення Web-сервісів XML

System.Web.UI

Сервіси для зручного створення Web-призначених для

 

користувача

інтерфейсів (Web Forms)

System.Windows.Forms

Сервіси підтримки класичних призначених для користувача

 

інтерфейсів

 

Загальна бібліотека класів жорстко прив'язана до середовища виконання – вона є її невід'ємною частиною. У цьому є як свої плюси, так і мінуси. До плюсів можна віднести зменшення розмірів кінцевих застосувань і оптимізацію бібліотеки з підвищенням версії середовища виконання. До мінусів відноситься можлива втрата сумісності сервісів загальної бібліотеки для різних версій середовища виконання.

Типи даних C#

У мові C# існує два різновиди типів даних: значущі типи (value types) і посилальні типи (reference types). До значущих типів відносяться прості типи (char, int, float), перераховувані типи (enum) і структури (struct), тобто типи, що безпосередньо містять дані. Це переважно локальні змінні і параметри методів, які поміщаються в стек потоку. Якщо потрібно скористатися посиланням на подібні дані, доводиться використовувати операцію boxing (обгортання або упаковка).

Посилальними типами є класи, інтерфейси, масиви (підтримуються одно- і багатовимірні масиви) і делегати: типи, що зберігають посилання на методи. Для доступу до екземплярів подібних типів використовуються посилання, які указують на реальні об'єкти, розташовані в динамічній пам'яті застосування.

Для задання нових типів даних розробники можуть використовувати перерахування і структури, а також класи, інтерфейси і делегати.

Важливою частиною бібліотеки FCL стали класи, що задають примітивні типи - ті типи, які вважаються вбудованими в мову програмування. Типи .NET Framework покривають всю множину вбудованих типів, що зустрічаються в мовах програмування. Типи мови програмування проектуються на відповідні типи .NET Framework. Тип, званий в мові Visual Basic, - Integer, а в мові C# - int, проектується на один і той же тип System.Int32. У кожній мові програмування, разом з "рідними" для мови назвами типів, дозволяється користуватися іменами типів, прийнятими в

.NET Framework. Тому, по суті, всі мови середовища розробки можуть користуватися єдиною системою вбудованих типів, що, звичайно, сприяє полегшенню взаємодії компонентів, написаних на різних мовах

Зумовлені типи даних

Мова C# містить ряд вбудованих (built-in) зумовлених значущих і посилальних типів, більшість з яких прийшла з мов С/С++. Іноді їх називають примітивними типами даних.

До зумовлених значущих типів відносяться цілочисельні типи (із знаком — sbyte, short, int, long і без знаку — byte, ushort, uint, ulong), числа з плаваючою крапкою (float і double) і типи bool, char і decimal. Таблиця 2 містить опис найбільш часто використовуваних примітивних типів даних.

19

Таблиця 2. Примітивні типи даних мови C#.

Тип

Опис

Розмір

 

Діапазон

Приклад

 

 

(битий)

 

 

 

int

цілі числа

32

 

 

<–>231 through 231<–>1

int count;

 

 

 

 

 

 

count = 42;

long

цілі числа (більший діапазон)

64

 

 

<–>263 through 263<–>1

long wait;

 

 

 

 

 

 

wait = 42L;

float

числа з плаваючою крапкою

32

 

 

±3.4 × 1038

float away;

 

 

 

 

 

 

away = 0.42F;

double

числа з плаваючою точкою

64

 

 

±1.7 × 10308

double trouble;

 

подвійної точності

 

 

 

 

trouble = 0.42;

decimal

грошовий тип

128

 

 

28 значущих цифр

decimal coin;

 

 

 

 

 

 

coin = 0.42M;

string

послідовність символів

16

битий

на

не застосуємо

string vest;

 

 

символ

 

 

vest = "42";

char

одиночний символ

16

 

 

0 through 216 <–>1

char grill;

 

 

 

 

 

 

grill = '4';

bool

булевий тип

8

 

 

true або false

bool teeth;

 

 

 

 

 

 

teeth = false;

*Значення 216 є 32,768; Значення 231 є 2,147,483,648; і Значення 263 є 9,223,372,036,854,775,808.

Зумовлені посилальні типи представлені типами object і string. Тип object є універсальним базовим типом для решти всіх типів.

Введення даних користувачем і їх виведення

Розглянемо наступний фрагмент програми [2]:

static void Main(srting[] args )

{

double firstNumber, secondNumber;

string username;

Console.WriteLine(“Enter your name:”);

username = Console.ReadLine();

Console.WriteLine(“Welcome {0}!”, userName);

Console.WriteLine(“Now give me а number:”);

firstNumber = Convert.ToDouble(Console.ReadLine());

Console.WriteLine(“Now give me another number:”);

secondNumber = Convert.ToDouble(Console.ReadLine());

Console.WriteLine(“The sum of {0} and {1} is {2}.”, firstNumber, secondNumber, firstNumber + secondNumber);

}

Як це працює. Для введення даних, здійснюваного користувачем, застосовується синтаксис, аналогічний синтаксису команди Console.WriteLine(). В даному випадку використовується команда Console.ReadLine(), яка генерує рядок. При прочитуванні двох дійсних чисел необхідно виконати перетворення типів за допомогою Convert.ToDouble().

Після цього виводяться числа і результат додавання. Усередині дужок функції Console.WriteLine(. . .)є два елементи: рядок формату і список змінних, розділених комами. Кожен комплект фігурних дужок в цьому рядку є зарезервованим місцем, в якому розміщуватиметься вміст чергової змінної із списку. Кожне таке зарезервоване місце має вид цілого числа у фігурних дужках. Ці цілі числа мають значення, що починаються з 0 і збільшуються на 1, а сумарна кількість таких місць повинна відповідати загальному числу змінних.

20