Слайды и текст доклада
Pic.1
Общая система типов CTS KtЛекция №3
Pic.2
CTS (общая система типов) CTS (общая система типов) представляет собой формальную спецификацию, в которой описано то, как должны быть определены типы для того, чтобы они могли обслуживаться в …
Pic.3
Тип Объект Все объекты косвенно происходят от единого базового класса, определенного в составе CTS. Этот базовый класс — System. Object.
Pic.4
Значимые и ссылочные типы Концепция создания языка, где любая сущность является объектом, не нова. Если попытаться сложить два значения типа double, при этом реально выделять объекты в куче, то …
Pic.5
Значимые типы Для значимого типа используется прямая адресация, значение хранит собственно данные, и память для них отводится, как правило, в стеке.
Pic.6
Ссылочные типы Для ссылочного типа значение задает ссылку на область памяти в "куче", где расположен соответствующий объект.
Pic.12
Упаковка и распаковка Как же эти различные категории типов обеспечивают более эффективную работу системы? Это делается с помощью упаковки (boxing). В простейшем случае при упаковке размерный тип …
Pic.13
Упаковка и распаковка Объект лишь тогда является объектом, когда это необходимо. int foo = 42; // Размерный тип. object bar = foo; // Переменная foo упакована в bar. А теперь выполним явное …
Pic.18
Приведение типов – это преобразование значения одного типа в значение другого типа. Приведение типов – это преобразование значения одного типа в значение другого типа.
Pic.19
Выделяют приведения типов: Выделяют приведения типов: явные (англ. explicit); int num = 2147483647; long bigNum = num; неявные (англ. implicit). double x = 1234. 7; int a; a = (int)x; // a = 1234
Pic.20
class Employee { } class Employee { } class ContractEmployee : Employee { } class CastExamplel { public static void Main () { Employee e = new ContractEmployee(); } } Этот код будет работать, …
Pic.21
А вот такой код недопустим, так как компилятор не предоставляет неявное нисходящее приведение (downcast). А вот такой код недопустим, так как компилятор не предоставляет неявное нисходящее приведение …
Pic.22
Вы не сможете выполнить нисходящее приведение объекта типа Employee к объекту типа ContractEmployee, поскольку нет гарантии, что этот объект поддерживает интерфейс, определенный классом …
Pic.23
А давайте обманем CTS путем явного приведения базового класса к производному: А давайте обманем CTS путем явного приведения базового класса к производному: … class CastExample4 { public static void …
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!