русс | укр

C# - Главная
Контакты
Задайте вопрос...
Просмотр всех вопросов


Пространство имен
  ► System
  ► Microsoft


Для учеников (начинающих)
  ► Видео уроки
  ► Обучение
  ► Примеры программ
  ► Секреты в Си Шарп

Для профессионалов
  ► Обучение
  ► Примеры программ
  ► Задачки - для тебя!










ЯЗЫК ПРОГРАММИРОВАНИЯ С# Обзор языка С#

 

Андерс Хиджисберг, который возглавил в Microsoft работу по созданию языка С#, следующим образом определил стоявшие перед ними цели:

- создать первый компонентно-ориентированный язык программирования семейства C/C++;

- создать объектно-ориентированный язык, в котором любая сущность

представляется объектом;

- упростить C++, сохранив его мощь и основные конструкции.

Главное новшество связано с заявленной компонентной ориентированностью языка. Компоненты позволяют решать проблему модульного построения приложений на новом уровне. Построение компонентов обычно определяется не только языком, но и платформой, на которой этот язык реализован.

Главное в языке С# — реализация принципов объектно-ориентированного программирования. Объектно-ориентированная методика неотделима от С#, и все С#-программы в какой-то степени имеют объектную ориентацию. Поэтому, прежде чем приступать к написанию даже простой программы, необходимо понять основные принципы ООП.

ООП — это мощный "рычаг", позволяющий усовершенствовать процесс программирования. С момента изобретения компьютера методы программирования менялись

много раз и причем коренным образом, но в основном, с целью адаптации к непрерывному повышению сложности программ.

Объектно-ориентированное программирование вобрало в себя лучшие идеи структурного программирования и объединило их с новыми концепциями. В результате появился более совершенный способ организации программы. Программу можно организовать одним из двух способов: опираясь либо на код (т.е. на действия, или на то, что происходит в программе), либо на данные (т.е.на то, что подвергается определенному воздействию). При использовании исключительно методов структурного программирования программы обычно организовывались с опорой на действия. Такой подход можно представить себе в виде кода, воздействующего на данные.

Объектно-ориентированные программы работают совсем по-другому. Они организованы вокруг данных, а ключевой принцип такой организации гласит: именно данные должны управлять доступом к коду. В объектно-ориентированном языке программист определяет данные и код, который разрешен для выполнения действий над этими данными. Таким образом, тип данных точно определяет операции, которые могут быть к ним применены. Для поддержки принципов объектно-ориентированного программирования все ООП-языки, включая С#, имеют три характерных черты: инкапсуляцию, полиморфизм и наследование.

 

Сравнение языков С# и С++

Ниже приведены основные отличия языка C# от его основного прародителя языка C++.

Указатели и управление памятью

В языке C++ работа с указателями занимает одно из центральных мест.

Нормальный стиль программирования на С# предполагает написание безопасного кода, а это значит — никаких указателей, никакой адресной арифметики, никакого управления распределением памяти. Возможность работы с указателями в духе C++ ограничена небезопасными блоками.

Небезопасный код для С#-программистов будет скорее исключением, чем правилом. Это позволит меньше отвлекаться на отслеживание корректности работы программы с памятью, уделяя больше внимания функциональной части программы.

Наследование и шаблоны

В языке С# не реализованы такие важные для C++ моменты, как множественное наследование и шаблоны. Множественное наследование в С# возможно только для интерфейсов.

Типы данных

В языке С# появилась принципиально новая классификация типов, подразделяющая типы на значимые и ссылочные. Как следствие, применяются разные способы работы с объектами этих типов. В языке устранена разница между переменными и объектами. Все переменные в С# — тоже объекты, которые имеют единого предка — класс System.Object.

Структуры

В языке C++ структуры подобны классу, за небольшими исключениями. В С# разница между структурой и классом более существенна: структуры не могут иметь наследников, классы относятся к ссылочным типам, а структуры — к значимым.

Массивы

В языке С# имеется возможность как объявлять классические массивы, так и работать с массивами при помощи встроенных классов. Работа с массивами в С# более безопасна, поскольку выход за границы массива контролируется (при условии использования безопасного кода).

Классы

Следует отметить различия в подходах к сокрытию свойств класса. В C++ такое понятие, как свойство, вообще отсутствовало. В С# введены процедуры-свойства get и set, аналогичные тому, как это сделано в языке VB. Синтаксис обращения к свойствам класса в С# аналогичен синтаксису обращения к данным.

Синтаксические и семантические детали

В С# оператор switch не требует задания break для прерывания операции. Булевы переменные в языке С# имеют два значения, вместо них нельзя использовать целочисленные переменные, как это принято в C++.

В С# точка используется всюду, где в C++ применяются три разных сим-

вола— ".", "::", "->".__

 

 

Просмотров: 6332






© 2012 ci-sharp.ru При использовании материала прямая индексирующая ссылка на сайт ОБЯЗАТЕЛЬНА.
Права строго защищены нормами международного права, интеллектуальной собственности и авторского права.