русс | укр

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






© 2012 ci-sharp.ru При використанні матеріалу пряме iндексуюче посилання на сайт ОБОВ'ЯЗКОВЕ.
Права строго захищені нормами міжнародного права, інтелектуальної власності та авторського права.