Автор работы: Пользователь скрыл имя, 16 Декабря 2010 в 19:19, реферат
C# — это типизированный, объектно-ориентированный, простой и в то же время мощный язык программирования, который позволяет разработчикам создавать многофункциональные приложения. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET (программной платформы от компании Microsoft, предназначенной для создания обычных программ и веб-приложений).
Введение 3
История возникновения 4
Особенности C# 5
Особенности реализации основных конструкций в C#. 6
Типы данных 6
Примитивные типы 6
Ссылочные типы 6
Структуры (записи) 7
Перечислимые типы 8
Массивы и коллекции 8
Параметризованные (обобщённые) типы 8
Переменные. 9
Циклы. 10
Цикл foreach 10
Цикл for 10
Цикл while 10
Цикл do-while 10
Функции и процедуры 11
Возвращаемые значения 11
Параметры 12
Некоторые особенности синтаксиса 13
Перегрузка операций 13
Пространства имён 13
Классы 14
Объявление класса 14
Создание объектов 15
Наследование классов 16
Таблица допустимых в определении классов комбинаций модификаторов доступа 17
Интерфейсы 17
Свойства и индексаторы 18
Сравнение C, C++ и C# 19
Сфера применения C# 21
Заключение 22
Список литературы 23
Приложения 24
Приложение 1 24
Приложение 2 24
Приложение 3 25
Приложение 4 25
Перечислимые типы в C# происходят от примитивных целочисленных типов. Допустимым значением перечислимого типа является любое значение лежащего в его основе примитивного, хотя для его присваивания может потребоваться явное приведение типа. Это позволяет комбинировать значения перечислимого типа побитовой операцией «или», если они являются битовыми флагами.
Массивы и коллекции получили выражение в синтаксисе, благодаря особой разновидности цикла for (цикл по коллекции, известный также как цикл foreach). Массив является объектом класса Array.
В C# есть как настоящие
многомерные массивы, так и массивы
массивов, которые в C# обычно называются
«неровными», или «ступенчатыми» (jagged).
Многомерные массивы всегда «прямоугольные»
(говоря в двумерной терминологии),
в то время как массивы массивов
могут хранить строки разной длины
(опять-таки в двумерном случае, в
многомерном аналогично). Многомерные
массивы ускоряют доступ к памяти
(для них указатель
Типы могут быть
параметризованными, что поддерживает
парадигму обобщённого
Поддержка обобщённости была интегрирована в саму виртуальную среду выполнения, впервые появившись в .NET 2.0. Язык здесь стал лишь внешним интерфейсом для доступа к этим возможностям среды. Компилятор производит статическую проверку типов, а в дополнение к этому JIT производит проверку корректности во время загрузки. Информация об обобщённых типах полностью присутствует во время выполнения и допускает полную поддержку рефлексии обобщённых типов и создание их новых реализаций
Переменная представляет числовое или строковое значение или объект класса. Значение, хранящееся в переменной, может измениться, однако имя остается прежним. Переменная представляет собой один тип поля.
В C# переменные объявляются с определенным типом данных и надписью.
Общий вид записи переменной: тип переменной имя переменной [= присваиваемое значение];
Необходимо указать тип переменной: int, float, byte, short или другой из более чем 20 различных типов данных. Тип указывает, помимо всего прочего, точный объем памяти, который следует выделить для хранения значения при выполнении приложения. При преобразовании переменной из одного типа в другой язык C# следует определенным правилам.
Например: int answer = 42;
string greeting = "Hello, World!";
double bigNumber = 1e100;
System.Console.WriteLine(
Константа является другим типом поля. Она хранит значение, присваиваемое по завершении компиляции программы, и никогда после этого не изменяется. Константы объявляются помощью ключевого слова const; их использование способствует повышению удобочитаемости кода.
Например: const int speedLimit = 55;
const
double pi = 3.
Переменная readonly аналогична константе, однако значение ей присваивается при запуске программы. Это дает возможность задать значение на основе каких-либо других условий, неизвестных до выполнения программы. Однако после первого присваивания значение не может быть снова изменено пока выполняется программа.
Циклом называется один или несколько операторов, повторяющихся заданное число раз или до тех пор, пока не будет выполнено определенное условие. Выбор типа цикла зависит от задачи программирования и личных предпочтений кодирования. Одним из основных отличий C# от других языков, таких как C++, является цикл foreach, разработанный для упрощения итерации по массиву или коллекции.
В C# представлен новый способ создания циклов, который может быть неизвестен программистам на C++ и C: цикл foreach. Вместо просто создания переменной для индексирования массива или другой структуры данных, такой как коллекция, цикл foreach выполняет более тяжелую работу.
Цикл foreach позволяет производить итерацию по каждому объекту в контейнерном классе, поддерживающем интерфейс IEnumerable. К контейнерным классам относятся массивы, классы коллекций (System.Collection) и определенные пользователем классы коллекций.
Объекты в цикле foreach доступны только для чтения! Значение объекта в коллекции изменять нельзя!
Пример: см. Приложение 1.
в случае если необходимо проводить итерации по элементам массива то часто используют цикл for
Пример: см. Приложение 2.
Цикл while выполняет оператор или блок операторов, пока определенное выражение не примет значение false.
Пример: см. Приложение 3.
Цикл do .. while выполнит блок операторов как минимум один раз, а затем повторит выполнение цикла до тех пор, пока условное выражение не возвратит значение false.
Пример: см. Приложение 4.
Функция в C# - это средство, позволяющее выполнять некоторые участки кода в произвольном месте приложения. Мы имеем возможность передавать функциям информацию, с которой они должны работать, в виде параметров и получать результаты работы функции в виде возвращаемых значений. Параметры и возвращаемое значение функции вместе называются сигнатурой функции.
Функция отличается от процедуры двумя особенностями:
Процедура C# имеет свои особенности:
Наиболее широкое применение процедуры и функции получают в качестве методов классов.
Самый простой способ
обмена данными с функциями —
использование возвращаемого
Если функция должна обладать возвращаемым значением, то необходимо внести два изменения:
Синтаксис кода для функций консольного приложения будет выглядеть следующим образом:
<возвращаемыйТип> <имяФункции>( )
{
return <возвращаемоеЗначение>;
}
Единственным ограничением в данном случае является требование, гласящее, что <возвращаемоеЗначение> должно иметь тип <возвращаемыйТип> или же должна существовать возможность его неявного преобразования в этот тип. Вообще говоря, <возвращаемыйТип> может быть любым.
Если функция должна получать параметры, то необходимо задать:
Общий вид: <ВозвращаемыйТип> <имяФункции> (<типПараметра> <имяПараметра> ...)
{
……
return <возвращаемоеЗначение>;
}
Здесь может быть произвольное число параметров, для каждого из которых указываются тип и имя. В качестве разделителя между параметрами ставятся запятые. Каждый из параметров доступен внутри данной функции в качестве переменной.
При вызове функции ее параметры должны в точности соответствовать ее описанию. Необходимо совпадение типов параметров, их количества и порядка их следования, иначе компилятор выдаст ошибку несоответствия сигнатурам вызываемых функций.
C# включает перегрузку
операций и задаваемое
C# использует пространства
имён (namespace), напоминающие одноимённый
механизм C++. Каждый класс относится
к некоторому пространству
Для обращения к
объекту, объявленному в другом пространстве
имён или пакете, нужно объявить
в программе требуемый пакет (пространство
имён) как используемый. Обращение
к объекту производится через
квалифицированное имя, в качестве
квалификатора используется имя
пакета (пространства имён). Если требуется
обращение к объекту без
Пространства имён никак не связаны с компилированными модулями (сборками, или assembly в терминологии Microsoft). Несколько сборок могут содержать одно и то же пространство имён, в одной сборке может объявляться несколько пространств имён, не обязательно вложенных. Модификаторы области видимости C# никак не связаны с пространствами имён.
Класс — это конструктор, который позволяет создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. Класс подобен чертежу. Он определяет данные и поведение типа. Если класс не объявлен статическим, то клиентский код может его использовать, создав объекты или экземпляры, назначенные переменной. Переменная остается в памяти, пока все ссылки на нее не выйдут из области видимости. В это время среда CLR помечает ее пригодной для сборщика мусора. Если класс объявляется статическим, то в памяти остается только одна копия и клиентский код может получить к ней доступ только посредством самого класса, а не переменной экземпляра.
В отличие от структур классы поддерживают наследование, фундаментальную характеристику объектно-ориентированного программирования.
Классы объявляются с помощью ключевого слова class
Пример: public class Customer
{
//Fields, properties, methods and events go here...
}
Ключевому слову class предшествует уровень доступа. Поскольку в данном случае используется public, любой может создавать объекты из этого класса. По умолчанию классы определяются как internal (внутренние), что означает, что доступ к ним будет иметь только код текущего проекта. При желании можно указать, что класс является общим и должен быть доступен из других проектов. Для этого используется ключевое слово public. Классы, которые объявляются самостоятельно, не могут быть частными или защищенными. Соответствующие модификаторы — private и protected — можно использовать только для описания классов, являющихся членами других классов.
Информация о работе Особенности языка программирования C# (Си-шарп)