- •Преимущества Microsoft.Net
- •Понятия приложения, проекта, решения
- •Создание первого проекта
- •Программирование на c#. Состав языка
- •Типы данных
- •Переменные и константы
- •Int age;
- •Организация ввода-вывода данных. Форматирование.
- •Вывод данных
- •Ввод данных
- •Операции
- •Выражения и преобразование типов
- •Int-long, float, double, decimal
- •Функции работы с символами и строками.
- •Символы char
- •Неизменяемые строки string
- •Изменяемые строки
- •Операторы ветвления
- •Оператор выбора switch.
- •Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием do while
- •Операторы безусловного перехода
- •Методы: основные понятия
- •Перегрузка методов
- •Обработка исключений
- •Оператор try
- •Операторы checked и unchecked
- •Массивы
- •Многомерные массивы
- •Ступенчатые массивы
- •Оператор foreach и его использование при работе с массивами
- •Регулярные выражения
- •Метасимволы в регулярных выражениях
- •Поиск в тексте по шаблону
- •Редактирование текста
- •Работа с файловой системой
- •Работа с каталогами Абстрактный класс FileSystemInfo
- •Класс DirectoryInfo
- •Класс Directory
- •Работа с файлами Класс Filelnfo
- •Класс File
- •Properties Window
Выражения и преобразование типов
Выражение – это синтаксическая единица языка, определяющая способ вычисления некоторого значения. Выражения состоят из операндов, операций и скобок. Каждый операнд является в свою очередь выражением или одним из его частных случаев – константой, переменной или функций.
Примеры выражений:
(а + 0.12)/6 х && у || !z(t* Math.Sin(x)-l.05e4)/((2 *k+ 2) * (2 *k+ 3))
Операции выполняются в соответствии с приоритетами.Для изменения порядка выполнения операций используются круглые скобки. Если в одном выражении записано несколько операций одинакового приоритета, то унарные операции, условная операция и операции присваивания выполняютсясправа налево,остальные —слева направо.Например,
а = b = с означает a=(b=c),
a+b+cозначает (а + b) + с.
В выражение могут входить операнды различных типов. Если операнды имеют одинаковый тип, то результат операции будет иметь тот же тип. Если операнды разного типа, то перед вычислениями выполняются преобразования более коротких типов в более длинные для сохранения значимости и точности. Иерархия типов данных приведена в следующей схеме:
double
floatdecimal
longulong
int uint
short ushort
sbyte byte char
Преобразование типов в выражениях происходит неявно(без участия программистов) следующим образом: Если одни из операндов имеет тип, изображенный на более низком уровне, чем другой, то он приводится к типу второго операнда при наличии пути между ними. Если пути нет, то возникает ошибка компиляции (чтобы ее избежать, необходимо воспользоваться операцией явного преобразования). Если путей преобразования несколько, то выбирается наиболее короткий, не содержащий пунктирных линий.
Преобразование типов
Существует два вида преобразования типов:
• Неявное преобразование — когда преобразование типа А в тип В возможно при любых обстоятельствах, а правила проведения такого преобразования достаточно просты, чтобы доверить его компилятору.
• Явное преобразование — когда преобразование типа А в тип В возможно только при определенных обстоятельствах либо правила преобразования настолько сложны, что возникает необходимость выполнения каких-либо дополнительных действий.
Для простых типов существует большое количество неявных преобразований; для типов bool и string неявных преобразований не существует, зато они имеются у численных типов.
Неявные преобразования
Неявное преобразование не требует со стороны программиста никакой дополнительной работы и никакого дополнительного кода.
Для простых типов существует большое количество неявных преобразований; для типов bool и string неявных преобразований не существует, зато они имеются у численных типов.
Byte-short, ushort, int, uint, long, ulong, float, double, decimal
Sbyte- short, int, long, float, double, decimal
Short-int, long, float, double, decimal
Ushort-int, uint, long, ulong, float, double,Decimal
Int-long, float, double, decimal
Uint-long, ulong, float, double, decimal
Long-float, double, decimal
Ulong-float, double, decimal
Float-double
Char-ushort, int, uint, long, ulong, float,double, decimal
Явные преобразования.
Рассмотрим выполнение явных преобразований с помощью команд преобразования.
Для того чтобы тип преобразования мог осуществиться, передаваемая строка должна быть допустимым представлением числа и это число не должно приводить к переполнению. Допустимым называется такое представление числа, которое содержит необязательный знак (плюс или минус), ноль или несколько цифр, необязательную десятичную точку, за которой следует одна или несколько цифр, а также необязательный символ "е" или "Е", за которым следуют необязательный знак и одна или несколько цифр, и ничего более, кроме пробелов (располагающихся перед или после этой последовательности). Используя все эти дополнительные опции, мы можем распознавать строки типа -1.245е-24 как число.
Существует много явных преобразований, которые могут быть определены таким же образом
Convert.ToBoolean(val) |
val преобразовано в bool |
Convert.ToByte(val) |
val преобразовано в byte |
Convert.ToChar(val) |
val преобразовано в char |
Convert.ToDecimal(val) |
val преобразовано в decimal |
Convert.ToDouble(val) |
val преобразовано в double |
Convert.Tolntl6(val) |
val преобразовано в short |
Convert.Tolnt32(val) |
val преобразовано в int |
Convert.Tolnt б 4(val) |
val преобразовано в long |
Convert.ToSByte(val) |
val преобразовано в sbyte |
Convert.ToSingle(val) |
val преобразовано в float |
Convert.ToString(val) |
val преобразовано в string |
Convert.ToUIntl6(val) |
val преобразовано в ushort |
Convert.ToUInt3 2(val) |
val преобразовано в uint |
Convert.ToUInt64(val) |
val преобразовано в ulong |