
- •1).Net Framework: общая характеристика, основные компоненты.
- •2).Net Framework: виртуальная машина и управляемый код
- •3) Алфавит языка c#. Лексемы: идентификаторы, ключевые слова, неименованные компоненты.
- •4) Типы данных языка с#: концепция, основные типы.
- •5) Переменные: правила описания, инициализация.
- •Область видимости переменных
- •6) Операции языка c#. Правила вычисления выражений.
- •1) Операция присваивания
- •2) Арифметические операции
- •3) Поразрядные операции
- •4) Операции отношения:
- •5) Логические операции:
- •6) Операция «приведение к типу»:
- •7) Строковые преобразования. Класс Convert:
- •8) Понятие исключения:
- •7) Операторы языка c#. Составной оператор. Блок. Метки
- •1) Оператор присваивания:
- •2) Вызов метода:
- •3) Блок или составной оператор:
- •4) Операторы ветвления:
- •5) Операторы цикла:
- •5.1. Оператор for:
- •5.2. Оператор while:
- •5.3. Оператор foreach:
- •6) Операторы перехода:зззззззззззззз
- •6.1. Оператор goto:
- •6.2. Операторы break и continue:
- •6.3. Оператор return:
- •9) Операторы цикла.
- •5.1. Оператор for:
- •5.2. Оператор while:
- •5.3. Оператор foreach:
- •10) Операторы передачи управления.
- •11) Логические и поразрядные операции языка с#.
- •12) Классы. Основные понятия, спецификаторы доступа.
- •13) Создание объектов. Понятие ссылки.
- •14) Массивы: одномерные, многомерные, невыровненые, массивы объектов.
- •Инициализация
- •Инициализация в цикле программы
- •Класс System.Array
- •15) Строковый тип данных string.
- •16) Методы: назначение, определение, вызов.
- •17) Возврат методом значений. Тип void.
- •18) Рекурсивные методы.
- •19) Перегрузка методов.
- •20) Конструкторы. Назначение, определение, вызов.
- •Вызов конструктора из других конструкторов
- •Конструкторы производных классов
- •21) Деструкторы. Назначение, определение, вызов.
- •Деструкторы Dispose() и Close()
- •22) Способы передачи параметров методу.
- •23) Статические компоненты классов.
- •24) Ссылка this.
- •25) Копирование объектов.
4) Операции отношения:
Все операции отношения используются для сравнения значений переменных или выражений. Эти операции вырабатывают значение булевского типа: ИСТИНА (true) или ЛОЖЬ (false). Численных эквивалентов для этих значений в языке C# не существует. Перечень операций приведён в таблице:
При выполнении операций сравнения следует помнить одну специфическую особенность. Точное сравнение вещественных чисел возможно только с нулём!
Сравнение ненулевых вещественных чисел, полученных путём вычислений, возможно только с определённой точностью. Это связано с формой представления вещественных чисел (формат с плавающей запятой). А вот числа формата Decimal можно сравнивать между собой на равно.
5) Логические операции:
Логические операции используются для составления логических выражений на основе выражений, которые используют операции сравнения. Такие выражения называются булевыми. Значением булевого выражения также может быть ИСТИНА и ЛОЖЬ.
6) Операция «приведение к типу»:
Эта операция используется тогда, когда необходимо преобразовать значение одного типа в значение другого типа. Это так называемое явное преобразование типов. Операция задаётся указанием имени типа в круглых скобках. Например, (byte) – преобразовать в тип байт. Рассмотрим пример:
int n = 10; double z; z = n; n = (int) z;
В данном примере объявлены две переменные, причём целочисленной уже присвоено значение. После присваивания значением z будет число 10,0 – такое преобразование выполнится неявно автоматически, и несогласования типов не будет. А вот обратное преобразование надо задавать явно. Понять, когда возможно неявное преобразование, а когда приведение надо делать явно, можно на основании схемы. На схеме перечислены все арифметические типы. Стрелками указаны направления, по которым автоматически осуществляется неявное преобразование (например, из byte в double). Любое обратное приведение (против стрелок) должно быть явным!!! Но надо помнить: ответственность за такое преобразование лежит на программисте. Вполне может оказаться, что при таком преобразовании будут искажены данные или потеряна точность, и система об этом не сообщит.
7) Строковые преобразования. Класс Convert:
Не существует явного преобразования арифметических типов в строки! Операция «приведение к типу» здесь невозможна. Однако, в базовом классе Object имеется и определён метод ToString. Так как все арифметические типы данных считаются потомками (наследниками) класса Object, то для них предусмотрена соответствующая реализация этого метода. Следовательно, метод ToString можно использовать, когда любое арифметическое значение надо преобразовать в строку. Например:
string s; int n = 2010; s = "Год "+ToString(n);
Достаточно часто требуется обратное преобразование – строку в число. Для таких преобразований предусмотрен специальный класс методов – класс Convert, встроенный в пространство имен System. Этот класс содержит 15 статических методов вида To(ToBoolean, … ТоInt64), где Type может принимать значения от Boolean до UInt64 (см. таблицу встроенных типов). Единственным исключением является тип Object, - метода ToObject нет по понятным причинам, поскольку для всех типов существует неявное преобразование к типу Object.
Существует возможность преобразования строки к системному типу DateTime, который хотя и не является встроенным типом языка C#, но допустим в программах, как и любой другой системный тип. Пример работы с этим типом:
System.DateTime dat = Convert.ToDateTime("15.03.2003"); Console.WriteLine("Date = {0}", dat);
Результатом вывода будет строка: Date = 15.03.2003 0:00:00
Кроме методов, задающих преобразования типов, в классе Convert имеются и другие методы, например, задающие преобразования символов Unicode в однобайтную кодировку ASCII, преобразования значений объектов и другие методы. Подробности можно посмотреть в справочной системе. В дальнейшем это будет более подробно разобрано на нашем сайте в моих следующих статьях.