©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
©Павловская Т.А. Язык С# Лекция 2. Состав языка и типы данных Вводятся базовые для всего дальнейшего изложения понятия: из каких простейших «кирпичиков» состоят все тексты на языке программирования, что понимают под типом данных и какие встроенные типы данных есть в языке C#.
©Павловская Т.А. Язык С# Состав языка Символы: буквы: A-Z, a-z, _, буквы нац. алфавитов цифры: 0-9, A-F спец. символы: +, *, {, … пробельные символы Лексемы: константы Вася именаVasia a _11 ключевые словаdouble do if знаки операций+ - = разделители; [ ], Выражения выражение - правило вычисления значения:a + b Операторы исполняемые:c = a + b; описания:double a, b;
©Павловская Т.А. Язык С# ВидПримеры Булевскиеtruefalse Целые дес Lu шестн.0xA0x1B80X00FFL Веществ. с тчк f 35m с порядком0.2E6.11e–3 5E10 Символьные'A ''\x74' '\0' '\uA81B' Строковые"Здесь был Vasia" "\tЗначение r=\xF5\n " "Здесь был \u0056\u0061 " Константа null null Константы (литералы) C#
©Павловская Т.А. Язык С# Имена (идентификаторы) имя должно начинаться с буквы или _; имя должно содержать только буквы, знак подчеркивания и цифры; прописные и строчные буквы различаются; длина имени практически не ограничена. имена не должны совпадать с ключевыми словами, в именах можно использовать управляющие последовательности Unicode Примеры правильных имен: Vasia, Вася, _13, Примеры неправильных имен: 2late, Big gig, Б#г
©Павловская Т.А. Язык С# Нотации Понятные и согласованные между собой имена основа хорошего стиля. Существует несколько нотаций соглашений о правилах создания имен. В C# для именования различных видов программных объектов чаще всего используются две нотации: Нотация Паскаля - каждое слово начинается с прописной буквы: MaxLength, MyFuzzyShooshpanchik Camel notation - с прописной буквы начинается каждое слово, составляющее идентификатор, кроме первого: maxLength, myFuzzyShooshpanchik
©Павловская Т.А. Язык С# Ключевые слова, знаки операций, разделители Ключевые слова идентификаторы, имеющие специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Например, для оператора перехода определено слово goto. Знак операции один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Например, сложение +, деление /, сложное присваивание %=. Операции делятся на унарные (с одним операндом), бинарные (с двумя) и тернарную (с тремя). Разделители используются для разделения или, наоборот, группирования элементов. Примеры разделителей: скобки, точка, запятая.
©Павловская Т.А. Язык С# Ключевые слова C# abstractasbaseboolbreakbytecase catchcharcheckedclassconstcontinue decimaldefaultdelegatedodouble elseenumeventexplicitexternfalse finallyfixedfloatforforeachgoto ifimplicitinintinterface internalislocklongnamespacenew nullobjectoperatoroutoverride paramsprivateprotectedpublic readonlyrefreturnsbytesealed shortsizeofstackallocstaticstring structswitchthisthrowtruetry typeofuintulonguncheckedunsafe ushortusingvirtualvoidvolatile while
©Павловская Т.А. Язык С# Типы данных
©Павловская Т.А. Язык С# внутреннее представление данных => множество их возможных значений допустимые действия над данными => операции и функции Тип данных определяет: Концепция типа данных
©Павловская Т.А. Язык С# Различные классификации типов данных Типы данных Простые Структуриро ванные Типы данных Встроенные Определяемые программистом Типы данных Статические Динамические
©Павловская Т.А. Язык С# Тип voidУказатели Типы данных Ссылочные object Массивы Строки string Классы Интерфейсы Делегаты Значения Булевский Целые Вещественные Финансовый Символьный Перечисления Структурные типы Структуры Типы nullable Основная классификация типов C#
©Павловская Т.А. Язык С# Хранение в памяти величин значимого и ссылочного типа Хип Стек Ссылка Значение Тип-значение Ссылочный тип Значение Ссылка Значение Ссылка аbc y Значение x
©Павловская Т.А. Язык С# Встроенные типы данных C#
©Павловская Т.А. Язык С# НазваниеКлючево е слово Тип.NETДиапазон значенийОписаниеРазмер, бит Булевский bool Booleantrue, false Целые sbyte SByte – знаковое8 byte Byte 0 255беззнаковое8 short Int16 – знаковое16 ushort UInt беззнаковое16 int Int32 (– )знаковое32 uint UInt32 ( )беззнаковое32 long Int64 (– )знаковое64 ulong UInt64 ( )беззнаковое64 Логический и целые
©Павловская Т.А. Язык С# Остальные Символьный char Char U+0000 U+ffffсимвол Unicode 16 Веществен- ные float Single цифр32 double Double цифр64 Финансовый decimal Decimal цифр128 Строковый string String длина ограничена объемом доступной памяти строка из символов Unicode object Object можно хранить все, что угодно всеобщий предок НазваниеКлючевое слово Тип.NETДиапазон значенийОписаниеРазмер, бит
©Павловская Т.А. Язык С# Поля и методы встроенных типов Любой встроенный тип C# построен на основе стандартного класса библиотеки.NET. Это значит, что у встроенных типов данных C# есть методы и поля. С помощью них можно, например, получить: double.MaxValue (или System.Double.MaxValue) максимальное число типа double; uint.MinValue (или System.UInt32.MinValue) минимальное число типа uint. В вещественных классах есть элементы: положительная бесконечность PositiveInfinity; отрицательная бесконечность NegativeInfinity; «не является числом»: NaN.