🗊 Презентация Общая система типов CTS

Нажмите для полного просмотра!
Общая система типов CTS, слайд №1 Общая система типов CTS, слайд №2 Общая система типов CTS, слайд №3 Общая система типов CTS, слайд №4 Общая система типов CTS, слайд №5 Общая система типов CTS, слайд №6 Общая система типов CTS, слайд №7 Общая система типов CTS, слайд №8 Общая система типов CTS, слайд №9 Общая система типов CTS, слайд №10 Общая система типов CTS, слайд №11 Общая система типов CTS, слайд №12 Общая система типов CTS, слайд №13 Общая система типов CTS, слайд №14 Общая система типов CTS, слайд №15 Общая система типов CTS, слайд №16 Общая система типов CTS, слайд №17 Общая система типов CTS, слайд №18 Общая система типов CTS, слайд №19 Общая система типов CTS, слайд №20 Общая система типов CTS, слайд №21 Общая система типов CTS, слайд №22 Общая система типов CTS, слайд №23

Вы можете ознакомиться и скачать презентацию на тему Общая система типов CTS. Доклад-сообщение содержит 23 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Общая система типов CTS KtЛекция №3
Описание слайда:
Общая система типов CTS KtЛекция №3

Слайд 2


CTS (общая система типов) CTS (общая система типов) представляет собой формальную спецификацию, в которой описано то, как должны быть определены типы...
Описание слайда:
CTS (общая система типов) CTS (общая система типов) представляет собой формальную спецификацию, в которой описано то, как должны быть определены типы для того, чтобы они могли обслуживаться в CLR-среде.

Слайд 3


Тип Объект Все объекты косвенно происходят от единого базового класса, определенного в составе CTS. Этот базовый класс — System.Object.
Описание слайда:
Тип Объект Все объекты косвенно происходят от единого базового класса, определенного в составе CTS. Этот базовый класс — System.Object.

Слайд 4


Значимые и ссылочные типы Концепция создания языка, где любая сущность является объектом, не нова. Если попытаться сложить два значения типа double,...
Описание слайда:
Значимые и ссылочные типы Концепция создания языка, где любая сущность является объектом, не нова. Если попытаться сложить два значения типа double, при этом реально выделять объекты в куче, то выделение памяти будет чрезвычайно неэффективно.

Слайд 5


Значимые типы Для значимого типа используется прямая адресация, значение хранит собственно данные, и память для них отводится, как правило, в стеке.
Описание слайда:
Значимые типы Для значимого типа используется прямая адресация, значение хранит собственно данные, и память для них отводится, как правило, в стеке.

Слайд 6


Ссылочные типы Для ссылочного типа значение задает ссылку на область памяти в "куче", где расположен соответствующий объект.
Описание слайда:
Ссылочные типы Для ссылочного типа значение задает ссылку на область памяти в "куче", где расположен соответствующий объект.

Слайд 7


Иерархия типов
Описание слайда:
Иерархия типов

Слайд 8


Встроенные типы
Описание слайда:
Встроенные типы

Слайд 9


Встроенные типы
Описание слайда:
Встроенные типы

Слайд 10


Встроенные типы
Описание слайда:
Встроенные типы

Слайд 11


Встроенные типы
Описание слайда:
Встроенные типы

Слайд 12


Упаковка и распаковка Как же эти различные категории типов обеспечивают более эффективную работу системы? Это делается с помощью упаковки (boxing). В...
Описание слайда:
Упаковка и распаковка Как же эти различные категории типов обеспечивают более эффективную работу системы? Это делается с помощью упаковки (boxing). В простейшем случае при упаковке размерный тип преобразуется в ссылочный. В обратном случае ссылочный тип распаковывается (unbox) в размерный.

Слайд 13


Упаковка и распаковка Объект лишь тогда является объектом, когда это необходимо. int foo = 42; // Размерный тип. object bar = foo; // Переменная foo...
Описание слайда:
Упаковка и распаковка Объект лишь тогда является объектом, когда это необходимо. int foo = 42; // Размерный тип. object bar = foo; // Переменная foo упакована в bar. А теперь выполним явное приведение типов, чтобы преобразовать bar обратно в размерный тип: int foo = 42; // Размерный тип. object bar = foo; // Переменная foo упакована в bar. int foo2 = (int) bar; // Распаковка и приведение к типу int.

Слайд 14


Общая система типов CTS, слайд №14
Описание слайда:

Слайд 15


Общая система типов CTS, слайд №15
Описание слайда:

Слайд 16


Общая система типов CTS, слайд №16
Описание слайда:

Слайд 17


Общая система типов CTS, слайд №17
Описание слайда:

Слайд 18


Приведение типов – это преобразование значения одного типа в значение другого типа. Приведение типов – это преобразование значения одного типа в...
Описание слайда:
Приведение типов – это преобразование значения одного типа в значение другого типа. Приведение типов – это преобразование значения одного типа в значение другого типа.

Слайд 19


Выделяют приведения типов: Выделяют приведения типов: явные (англ. explicit); int num = 2147483647; long bigNum = num; неявные (англ. implicit)....
Описание слайда:
Выделяют приведения типов: Выделяют приведения типов: явные (англ. explicit); int num = 2147483647; long bigNum = num; неявные (англ. implicit). double x = 1234.7; int a; a = (int)x; // a = 1234

Слайд 20


class Employee { } class Employee { } class ContractEmployee : Employee { } class CastExamplel { public static void Main () { Employee e = new...
Описание слайда:
class Employee { } class Employee { } class ContractEmployee : Employee { } class CastExamplel { public static void Main () { Employee e = new ContractEmployee(); } } Этот код будет работать, поскольку всегда подразумевается восходящее приведение (upcast) производного класса к его базовому классу.

Слайд 21


А вот такой код недопустим, так как компилятор не предоставляет неявное нисходящее приведение (downcast). А вот такой код недопустим, так как...
Описание слайда:
А вот такой код недопустим, так как компилятор не предоставляет неявное нисходящее приведение (downcast). А вот такой код недопустим, так как компилятор не предоставляет неявное нисходящее приведение (downcast). … class CastExample2 { public static void Main () { ContractEmployee ce = new Employee (); // He будет // компилироваться. } }

Слайд 22


Вы не сможете выполнить нисходящее приведение объекта типа Employee к объекту типа ContractEmployee, поскольку нет гарантии, что этот объект...
Описание слайда:
Вы не сможете выполнить нисходящее приведение объекта типа Employee к объекту типа ContractEmployee, поскольку нет гарантии, что этот объект поддерживает интерфейс, определенный классом ContractEmployee. Поэтому в случае нисходящего приведения используется явное приведение: Вы не сможете выполнить нисходящее приведение объекта типа Employee к объекту типа ContractEmployee, поскольку нет гарантии, что этот объект поддерживает интерфейс, определенный классом ContractEmployee. Поэтому в случае нисходящего приведения используется явное приведение: ... class CastExampleS { public static void Main () {// Нисходящее приведение не сработает. ContractEmployee ce = (ContractEmployee)new Employee(); }}

Слайд 23


А давайте обманем CTS путем явного приведения базового класса к производному: А давайте обманем CTS путем явного приведения базового класса к...
Описание слайда:
А давайте обманем CTS путем явного приведения базового класса к производному: А давайте обманем CTS путем явного приведения базового класса к производному: … class CastExample4 { public static void Main () { Employee e = new Employee (); ContractEmployee с = (ContractEmployee)e; } } Эта программа компилируется, но генерирует исключение периода выполнения.



Похожие презентации
Mypresentation.ru
Загрузить презентацию