C# - Главная Пространство имен
► System ► Microsoft Для учеников (начинающих)
► Видео уроки ► Обучение ► Примеры программ ► Секреты в Си Шарп Для профессионалов
► Обучение ► Примеры программ ► Задачки - для тебя! |
ЯЗЫК ПРОГРАММИРОВАНИЯ С# Обзор языка С#
Андерс Хиджисберг, который возглавил в Microsoft работу по созданию языка С#, следующим образом определил стоявшие перед ними цели: - создать первый компонентно-ориентированный язык программирования семейства C/C++; - создать объектно-ориентированный язык, в котором любая сущность представляется объектом; - упростить C++, сохранив его мощь и основные конструкции. Главное новшество связано с заявленной компонентной ориентированностью языка. Компоненты позволяют решать проблему модульного построения приложений на новом уровне. Построение компонентов обычно определяется не только языком, но и платформой, на которой этот язык реализован. Главное в языке С# — реализация принципов объектно-ориентированного программирования. Объектно-ориентированная методика неотделима от С#, и все С#-программы в какой-то степени имеют объектную ориентацию. Поэтому, прежде чем приступать к написанию даже простой программы, необходимо понять основные принципы ООП. ООП — это мощный "рычаг", позволяющий усовершенствовать процесс программирования. С момента изобретения компьютера методы программирования менялись много раз и причем коренным образом, но в основном, с целью адаптации к непрерывному повышению сложности программ. Объектно-ориентированное программирование вобрало в себя лучшие идеи структурного программирования и объединило их с новыми концепциями. В результате появился более совершенный способ организации программы. Программу можно организовать одним из двух способов: опираясь либо на код (т.е. на действия, или на то, что происходит в программе), либо на данные (т.е.на то, что подвергается определенному воздействию). При использовании исключительно методов структурного программирования программы обычно организовывались с опорой на действия. Такой подход можно представить себе в виде кода, воздействующего на данные. Объектно-ориентированные программы работают совсем по-другому. Они организованы вокруг данных, а ключевой принцип такой организации гласит: именно данные должны управлять доступом к коду. В объектно-ориентированном языке программист определяет данные и код, который разрешен для выполнения действий над этими данными. Таким образом, тип данных точно определяет операции, которые могут быть к ним применены. Для поддержки принципов объектно-ориентированного программирования все ООП-языки, включая С#, имеют три характерных черты: инкапсуляцию, полиморфизм и наследование.
Сравнение языков С# и С++ Ниже приведены основные отличия языка C# от его основного прародителя языка C++. Указатели и управление памятью В языке C++ работа с указателями занимает одно из центральных мест. Нормальный стиль программирования на С# предполагает написание безопасного кода, а это значит — никаких указателей, никакой адресной арифметики, никакого управления распределением памяти. Возможность работы с указателями в духе C++ ограничена небезопасными блоками. Небезопасный код для С#-программистов будет скорее исключением, чем правилом. Это позволит меньше отвлекаться на отслеживание корректности работы программы с памятью, уделяя больше внимания функциональной части программы. Наследование и шаблоны В языке С# не реализованы такие важные для C++ моменты, как множественное наследование и шаблоны. Множественное наследование в С# возможно только для интерфейсов. Типы данных В языке С# появилась принципиально новая классификация типов, подразделяющая типы на значимые и ссылочные. Как следствие, применяются разные способы работы с объектами этих типов. В языке устранена разница между переменными и объектами. Все переменные в С# — тоже объекты, которые имеют единого предка — класс System.Object. Структуры В языке C++ структуры подобны классу, за небольшими исключениями. В С# разница между структурой и классом более существенна: структуры не могут иметь наследников, классы относятся к ссылочным типам, а структуры — к значимым. Массивы В языке С# имеется возможность как объявлять классические массивы, так и работать с массивами при помощи встроенных классов. Работа с массивами в С# более безопасна, поскольку выход за границы массива контролируется (при условии использования безопасного кода). Классы Следует отметить различия в подходах к сокрытию свойств класса. В C++ такое понятие, как свойство, вообще отсутствовало. В С# введены процедуры-свойства get и set, аналогичные тому, как это сделано в языке VB. Синтаксис обращения к свойствам класса в С# аналогичен синтаксису обращения к данным. Синтаксические и семантические детали В С# оператор switch не требует задания break для прерывания операции. Булевы переменные в языке С# имеют два значения, вместо них нельзя использовать целочисленные переменные, как это принято в C++. В С# точка используется всюду, где в C++ применяются три разных сим- вола— ".", "::", "->".__
Просмотров: 6332 |