С#. Типы и классы 02. C#. Типы и классы
Определение основных понятий q q q Класс (Class) Объект (Object) Пространство имен (Namespace) Проект (Project) Сборка (Assembly) Решение (Solution) 02. C#. Типы и классы 2
Система типов языка С# 1. Логический тип ( bool ). 2. Символьный тип ( char ). 3. Целые типы могут быть одного из трех размеров - short, int, long, сопровождаемые описателем signed или unsigned, который указывает, как интерпретируется значение - со знаком или без оного. 4. Типы с плавающей точкой. Эти типы также могут быть одного из трех размеров - float, double, long double. 5. Тип void, используемый для указания на отсутствие информации. Язык позволяет конструировать типы. 6. Указатели (например, int* - типизированный указатель на переменную типа int). 7. Ссылки (например, double& - типизированная ссылка на переменную типа double). 8. Массивы (например, char[] - массив элементов типа char). Язык позволяет конструировать пользовательские типы. 9. Перечислимые типы ( enum ) для представления значений из конкретного множества. 10. Структуры ( struct ). 11. Классы ( class ). 02. C#. Типы и классы 3
Система типов языка С# Все типы можно разделить на четыре категории: q типы-значения ( value ), или значимые типы, развернутые типы - значение переменной хранится непосредственно в стеке; q ссылочные ( reference ) - значение в стеке задает ссылку на область памяти в "куче « (Heap); q указатели ( pointer ); q тип void. 02. C#. Типы и классы 4
Базисные встроенные типы языка С# 02. C#. Типы и классы 5
Синтаксис объявления сущностей [<атрибуты>] [<модификаторы>] <тип> <список объявителей>; <имя> | <имя> = <инициализатор> Задание инициализатора в объектном стиле: new <имя конструктора>([<список аргументов>]) 02. C#. Типы и классы 6
Типы, допускающие неопределенные значения System. Nullable
Выполнение преобразований между типами Т? и Т //x = (int)x 1; y = (int)y 1; Console. Write. Line("x = {0}, y = {1}", x, y); z 1 = x 1 * y ? ? y 1; y 1 = z 1 - y 1; Console. Write. Line("x 1 = {0}, y 1 = {1}, z 1 = {2}", x 1, y 1, z 1); ________________________________ System. Nullable
Выполнение преобразований между типами Т? и Т 02. C#. Типы и классы 9
Null, Na. N и Infinity static void Null. And. Nan() { double? u = null, v = 0, w = 1. 5; Console. Write. Line("u = {0}, v = {1}, w = {2}", u, v, w); double? x, y, z; x = u + v; y = w / v; z = x + y; Console. Write. Line("x = u + v = {0}, y = w / v = {1}, " + " z = x + y = {2}", x, y, z); 02. C#. Типы и классы 10
Null, Na. N и Infinity x = -y; y = v * y; z = x + y; Console. Write. Line("x = -y = {0}, y = v * y = {1}, " + " z = x + y = {2}", x, y, z); double p = -(double)w, q = double. Negative. Infinity; Console. Write. Line("p = {0}, q = {1}, 1 / q = {2}", Math. Sqrt(p), q, 1 / q); p = 1 e 160; Console. Write. Line("p = {0}, p * p = {1}", p, p * p); float p 1 = 1 e 20 f; Console. Write. Line("p 1 = {0}, p 1 * p 1 = {1}", p 1 * p 1); 02. C#. Типы и классы 11
Null, Na. N и Infinity 02. C#. Типы и классы 12
Типы и классы Наследуемые методы класса object: 1. bool Equals(object obj) - проверяет эквивалентность текущего объекта и объекта, переданного в качестве аргумента; 2. System. Type Get. Type() - возвращает системный тип текущего объекта; 3. string To. String() - возвращает строку, связанную с объектом. Для арифметических типов возвращается значение, преобразованное в строку; 4. int Get. Hash. Code() - служит как хэш-функция в соответствующих алгоритмах поиска по ключу при хранении данных в хэш-таблицах. 02. C#. Типы и классы 13
Типы и классы. Пример int x = 1; int v = new Int 32(); v = 007; string s 1 = "Agent"; s 1 = s 1 + v. To. String() +x. To. String(); 02. C#. Типы и классы 14
Вопросы ? ? ? 02. C#. Типы и классы 15