
- •Система типов
- •Литература
- •Обзор
- •Изучение языка программирования
- •Тип данных
- •Обзор CTS
- •Где и как хранятся значения типов
- •Типы значений и ссылочные типы
- •Система общих типов CTS
- •Размерные и ссылочные типы данных
- •Объявление и удаление ссылочных переменных
- •Неверное использование ссылок
- •Сравнение значений и сравнение ссылок
- •Множество ссылок на один и тот же объект
- •Встроенные типы данных
- •Простые типы
- •Назначение имен переменных
- •Правила и рекомендации по назначению имен
- •Объявление локальных переменных
- •Инициализация переменной
- •Типы, допускающие неопределенные значения
- •Null, NaN и Infinity
- •Время жизни и область видимости переменных
- •Неявно типизированные переменные
- •readonly
- •Константы
- •Тест: найдите ошибки
- •Составная операция присваивания
- •Основные операторы
- •Инкремент и декремент
- •Пример
- •Приоритет операторов
- •Создание пользовательских типов данных
- •Перечисления
- •Структуры
- •Преобразование типов
- •Иерархия типов при неявном преобразовании
- •Неявное (автоматическое) преобразование типов
- •Явное преобразование типов
- •Лабораторная работа 2: Создание и использование

Система типов
Обзор типов данных языка C#

Литература
http://msdn.microsoft.com/ru-ru/vstudio/default.aspx
Спецификация языка C#. Версия 4.0. – 567 с.
Герберт Шилдт С# 4.0: полное руководство.: Пер. с англ. — М. :
ООО "И.Д. Вильямс", 2011. — 1056 с.
Трей Неш C# 2010: ускоренный курс для профессионалов. – М.:ООО "И.Д. Вильямс". 2010. – 592 с.
ЭндрюТроелсен Язык программирования С# 2010 и платформа .NET 4.0, 5-е изд. : Пер. с англ. — М. : ООО "И.Д. Вильямс", 2011. – 1392 с.
Карли Уотсон, Кристиан Нейгел, Якоб Хаммер и др. Visual C# 2010: базовый курс. Visual Studio® 2010.

Обзор
Common Type System (унифицированная система типов )
Значимые и ссылочные типы
Объявление переменных
Использование встроенных типов данных
Создание пользовательских типов данных

Изучение языка программирования
Изучение системы типов языка:
Как в нем устроена система типов данных?Какие есть простые типы?
Как создаются сложные, структурные типы?Как определяются собственные типы?Как определяются классы?

Тип данных
ОпределяетФормат представления в памяти компьютера
Множество допустимых значений, которые может
принимать принадлежащая к выбранному типу переменная или константа
Множество допустимых операций, применимых к
этому типу.
C# является строго типизированным языком

Обзор CTS
CTS поддерживает принцип наследования
Производный тип наследует (с некоторыми ограничениями) методы, свойства и другие члены базового типа
Каждый тип в CTS определен либо как тип значения, либо как ссылочный тип
Тип
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Размерные типыт |
|
|
|
|
Ссылочные типыт |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Где и как хранятся значения типов
Стек – область памяти, в которой хранятся значения локальных переменных
Куча – область памяти, которая динамически выделяется для хранения данных, работа с которыми реализуется через указатели и ссылки

Типы значений и ссылочные типы
В языке C# жестко определено, какие типы относятся к ссылочным, а какие к значимым

Система общих типов CTS

Размерные и ссылочные типы данных
Размерные типы |
Ссылочные типы |
||||||
|
В переменной |
В переменной содержится ссылка на |
|||||
|
данные |
||||||
|
хранятся сами |
Данные хранятся в отдельной области |
|||||
|
данные |
памяти |
|||||
|
Операции над |
Две ссылочные переменные могут |
|||||
|
указывать на один объект (операции |
||||||
|
одной переменной |
||||||
|
над одной переменной могут повлиять |
||||||
|
не могут повлиять |
на другую) |
|||||
|
на другую |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int mol; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string mol; |
|
|
|
mol = 42; |
|
|
|
mol = "Hello"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
• |
Hello |
42 |
• |
llo |
|
|