- •Тема 2.1.1 Синтаксис языка c#. Данные и операции над ними
- •Тема 2.1.1 Синтаксис языка c#. Данные и операции над ними 1
- •Какие типы данных присутствуют в c#?
- •Int[] mass;// объявление массива целых чисел mass
- •Какие типы данных встроены в c#?
- •Почему в c# типы данных являются одновременно и классами?
- •При каких условиях переменным одного типа можно присваивать значения другого типа?
- •Как в c# автоматизируется преобразование типов?
- •Как в c# объявляются и инициируются переменные?
- •Где в c# объявляются переменные?
- •Каково поведение локальных переменных в c#?
- •Как в c# объявляются константы?
- •Какие математические функции и константы встроены в c#?
- •Как в c# генерировать случайные числа?
- •Выводы:
Тема 2.1.1 Синтаксис языка c#. Данные и операции над ними
Тема 2.1.1 Синтаксис языка c#. Данные и операции над ними 1
Какие типы данных присутствуют в C#? 1
Какие типы данных встроены в C#? 2
Почему в C# типы данных являются одновременно и классами? 3
При каких условиях переменным одного типа можно присваивать значения другого типа? 3
Как в C# автоматизируется преобразование типов? 5
Как в C# объявляются и инициируются переменные? 5
Где в C# объявляются переменные? 5
Каково поведение локальных переменных в C#? 5
Как в C# объявляются константы? 6
Чем операции и выражения в C# отличаются от операций и выражений в С++? 6
Какие математические функции и константы встроены в C#? 7
Как в C# генерировать случайные числа? 8
Чем операторы C# отличаются от операторов С++? 8
На самостоятельное изучение: 9
Материал взят из файла «Лекции по C# В_А_Биллинг.pdf», Глава 3. Лекция: Система типов языка С#.
Какие типы данных присутствуют в c#?
1. Типы-значения (value), или значимые типы.
2. Ссылочные (reference).
3. Указатели (pointer).
4. Тип void.
Эта классификация основана на том, где и как хранятся значения типов.
В отдельную категорию выделены указатели, что подчеркивает их особую роль в языке. Указатели имеют ограниченную область действия и могут использоваться только в небезопасных блоках, помеченных как unsafe.
Особый статус имеет и тип void, указывающий на отсутствие какого-либо значения.
Переменные значимых типов в C# могут объявляться и инициироваться обычным для С++ способом. Например: int i=0;
К ссылочным типам относятся: массивы, строки и классы. При определении переменных этих типов используется оператор new или операция присваивания адреса от уже существующей переменной.
Массивы рассматриваются как динамические переменные, их размер может определяться на этапе вычислений, а не в момент трансляции. Например:
Int[] mass;// объявление массива целых чисел mass
mass=new int[10];// определение массива из 10 целых чисел
Строки также рассматриваются как динамические переменные, длина которых может изменяться. Например:
string s1; // объявление пустой строки s1
s1=”Привет!”; // строке s1 определяется размер 7 символов и значение «Привет!»
Структуры представляют частный случай класса. Определив свой класс как структуру, программист получает возможность отнести класс к значимым типам, что иногда бывает крайне полезно, так как требует меньших затрат памяти и времени на обработку.
Какие типы данных встроены в c#?
В основном, это такие типы, которые поддерживаются платформой .NET.
Вот перечень и краткое описание встроенных типов:
Логический тип |
|||
Имя типа |
Системный тип |
Значения |
Размер |
Bool |
System.Boolean |
true, false |
8 бит |
Арифметические целочисленные типы |
|||
Имя типа |
Системный тип |
Диапазон |
Размер |
Sbyte |
System.SByte |
-128 — 127 |
Знаковое, 8 Бит |
Byte |
System.Byte |
0 — 255 |
Беззнаковое, 8 Бит |
Short |
System.Short |
-32768 —32767 |
Знаковое, 16 Бит |
Ushort |
System.UShort |
0 — 65535 |
Беззнаковое, 16 Бит |
Int |
System.Int32 |
≈(-2*10^9 — 2*10^9) |
Знаковое, 32 Бит |
Uint |
System.UInt32 |
≈(0 — 4*10^9) |
Беззнаковое, 32 Бит |
Long |
System.Int64 |
≈(-9*10^18 — 9*10^18) |
Знаковое, 64 Бит |
Ulong |
System.UInt64 |
≈(0— 18*10^18) |
Беззнаковое, 64 Бит |
Арифметический тип с плавающей точкой |
|||
Имя типа |
Системный тип |
Диапазон |
Точность |
Float |
System.Single |
+1.5*10^-45 - +3.4*10^38 |
7 цифр |
Double |
System.Double |
+5.0*10^-324 - +1.7*10^308 |
15-16 цифр |
Арифметический тип с фиксированной точкой |
|||
Имя типа |
Системный тип |
Диапазон |
Точность |
Decimal |
System.Decimal |
+1.0*10^-28 - +7.9*10^28 |
28-29 значащих цифр |
Символьные типы |
|||
Имя типа |
Системный тип |
Диапазон |
Точность |
Char |
System.Char |
U+0000 - U+ffff |
16 бит Unicode символ |
String |
System.String |
Строка из символов Unicode |
|
Объектный тип |
|||
Имя типа |
Системный тип |
Примечание |
|
Object |
System.Object |
Прародитель всех встроенных и пользовательских типов |
Система встроенных типов языка C# не только содержит практически все встроенные типы (за исключением long double) стандарта языка C++, но и перекрывает его разумным образом. В частности тип string является встроенным в язык, что вполне естественно.