C# - Головна Простір імен
► System (5)► Microsoft (1) Для учнів (початківців)
► Відео уроки (4)► Навчання (177) ► Приклади програм (19) ► Секрети Сі Шарп (4) Для професіоналів
► Навчання (6)► Приклади програм (1) |
МОВА ПРОГРАМУВАННЯ С# Огляд мови С#
Андерс Хиджисберг, який очолив в Microsoft роботу щодо створення мови С#, наступним чином визначив, що стояли перед ними цілі: - створити перший компонентно-орієнтована мова програмування сімейства C/C++; - створити об'єктно-орієнтована мова, в якому будь-яка сутність представляється об'єктом; - спростити C++, зберігши його міць і основні конструкції. Головне нововведення пов'язане з заявленої компонентної орієнтованістю мови. Компоненти дозволяють вирішувати проблему модульного побудови додатків на новому рівні. Побудова компонентів зазвичай визначається не тільки мовою, але і платформою, на якій ця мова реалізований. Головне в мові С# — реалізація принципів об'єктно-орієнтованого програмування. Об'єктно-орієнтована методика невіддільна від С#, і всі З#-програми в якійсь мірі мають об'єктну орієнтацію. Тому, перш ніж приступати до написання навіть простий програми, необхідно зрозуміти основні принципи ООП. ООП — це потужний "важіль", що дозволяє вдосконалити процес програмування. З моменту винаходу комп'ютера методи програмування змінювалися багато разів, причому докорінно, але в основному, з метою адаптації до безперервного підвищення складності програм. Об'єктно-орієнтоване програмування увібрало в себе кращі ідеї структурного програмування і об'єднало їх з новими концепціями. В результаті з'явився більш досконалий спосіб організації програми. Програму можна організувати одним з двох способів: або спираючись на код (тобто на дії, або на те, що відбувається в програмі), або на дані (тобто на те, що піддається певному впливу). При використанні виключно методів структурного програмування програми зазвичай організовувалися з опорою на дії. Такий підхід можна уявити собі у вигляді коду, що впливає на дані. Об'єктно-орієнтовані програми працюють зовсім по-іншому. Вони організовані навколо даних, а ключовий принцип такої організації свідчить: саме дані повинні керувати доступом до коду. В об'єктно-орієнтованій мові програміст визначає дані і код, який дозволений для виконання дій над цими даними. Таким чином, тип даних визначає операції, які можуть бути до них застосовані. Для підтримки принципів об'єктно-орієнтованого програмування всі ООП-мови, включно З#, мають три характерні риси: інкапсуляцію, поліморфізм і наслідування.
Порівняння мов З# і С++ Нижче наведені основні відмінності мови C# від його основного прабатька мови C++. Покажчики і управління пам'яттю У мові C++ робота з покажчиками займає одне з центральних місць. Нормальний стиль програмування на С# передбачає написання безпечного коду, а це значить — ніяких покажчиків, ніякої адресної арифметики, ніякого управління розподілом пам'яті. Можливість роботи з покажчиками в дусі C++ обмежена небезпечними блоками. Небезпечний код для С#-програмістів буде швидше винятком, ніж правилом. Це дозволить менше відволікатися на відстеження коректності роботи програми з пам'яттю, приділяючи більше уваги функціональної частини програми. Спадкування і шаблони В мові С# не реалізовані такі важливі для C++ моменти, як множинне спадкування і шаблони. Множинне спадкування в С# можливо тільки для інтерфейсів. Типи даних В мові С# з'явилася принципово нова класифікація типів, підрозділяються на типи значущі і смітники. Як наслідок, застосовуються різні способи роботи з об'єктами цих типів. У мові усунена різниця між змінними і об'єктами. Всі змінні в С# — теж об'єкти, які мають єдиного предка — клас System.Object. Структури У мові C++ структури подібні класу, за невеликими винятками. В С# різниця між структурою і класом більш істотна: структури не можуть мати спадкоємців, класи відносяться до посилальних типів, а структури — до значущим. Масиви В мові С# є можливість як оголошувати класичні масиви, так і працювати з масивами за допомогою вбудованих класів. Робота з масивами в С# більш безпечна, оскільки вихід за межі масиву контролюється (за умови використання безпечного коду). Класи Слід зазначити розходження в підходах до приховування властивостей класу. В C++ таке поняття, як властивість, взагалі відсутнє. В С# введені процедури-властивості get і set, аналогічні тому, як це зроблено в мовою VB. Синтаксис звернення до властивостей класу в З# аналогічний синтаксису звертання до даних. Синтаксичні і семантичні деталі В С# оператор switch не вимагає завдання break для переривання операції. Булеві змінні в мові С# мають два значення, замість них можна використовувати цілочисельні змінні, як це прийнято в C++. В С# точка використовується всюди, де в C++ застосовуються три різних сім- вола— ".", "::", "->".__
Переглядів: 6660 |