Скачать презентацию С Типы и классы 02 C Типы и Скачать презентацию С Типы и классы 02 C Типы и

02_C#_Types.ppt

  • Количество слайдов: 15

С#. Типы и классы 02. C#. Типы и классы С#. Типы и классы 02. C#. Типы и классы

Определение основных понятий q q q Класс (Class) Объект (Object) Пространство имен (Namespace) Проект Определение основных понятий q q q Класс (Class) Объект (Object) Пространство имен (Namespace) Проект (Project) Сборка (Assembly) Решение (Solution) 02. C#. Типы и классы 2

Система типов языка С# 1. Логический тип ( bool ). 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 типы-значения ( Система типов языка С# Все типы можно разделить на четыре категории: q типы-значения ( value ), или значимые типы, развернутые типы - значение переменной хранится непосредственно в стеке; q ссылочные ( reference ) - значение в стеке задает ссылку на область памяти в "куче « (Heap); q указатели ( pointer ); q тип void. 02. C#. Типы и классы 4

Базисные встроенные типы языка С# 02. C#. Типы и классы 5 Базисные встроенные типы языка С# 02. C#. Типы и классы 5

Синтаксис объявления сущностей [<атрибуты>] [<модификаторы>] <тип> <список объявителей>; <имя> | <имя> = <инициализатор> Задание Синтаксис объявления сущностей [<атрибуты>] [<модификаторы>] <тип> <список объявителей>; <имя> | <имя> = <инициализатор> Задание инициализатора в объектном стиле: new <имя конструктора>([<список аргументов>]) 02. C#. Типы и классы 6

Типы, допускающие неопределенные значения System. Nullable<T> T? A ? ? B Выполнение преобразований между Типы, допускающие неопределенные значения System. Nullable T? A ? ? B Выполнение преобразований между типами Т? и Т static void Test. Nullable() { int x = 3, y = 7; int? x 1 = null, y 1, z 1; y 1 = x + y; z 1 = x 1 ? ? y 1; Console. Write. Line("x 1 = {0}, y 1 = {1}, z 1 = {2}", x 1, y 1, z 1); } 02. C#. Типы и классы 7

Выполнение преобразований между типами Т? и Т //x = (int)x 1; y = (int)y Выполнение преобразований между типами Т? и Т //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 u = x + x 1; double? v = y + y 1, w; w = u ? ? v + y 1; Console. Write. Line("u = {0}, v = {1}, w = {2}", u, v, w); 02. C#. Типы и классы 8

Выполнение преобразований между типами Т? и Т 02. C#. Типы и классы 9 Выполнение преобразований между типами Т? и Т 02. C#. Типы и классы 9

Null, Na. N и Infinity static void Null. And. Nan() { double? u = 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 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 Null, Na. N и Infinity 02. C#. Типы и классы 12

Типы и классы Наследуемые методы класса object: 1. bool Equals(object obj) - проверяет эквивалентность Типы и классы Наследуемые методы класса 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(); Типы и классы. Пример 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 Вопросы ? ? ? 02. C#. Типы и классы 15