Типы и структуры данных в .Net

Содержание

Слайд 2

osinit.com
Важная составляющая программирования – обработка данных.

osinit.com Важная составляющая программирования – обработка данных.

Слайд 3

osinit.com

В .Net типы данных делятся на две категории:

Ссылочные

Значимые

osinit.com В .Net типы данных делятся на две категории: Ссылочные Значимые

Слайд 4

osinit.com

Значимые типы хранятся в стеке потока

osinit.com Значимые типы хранятся в стеке потока

Слайд 5

osinit.com

Ссылочные типы хранятся в управляемой куче

osinit.com Ссылочные типы хранятся в управляемой куче

Слайд 6

osinit.com

Ссылочные

Значимые

Переопределение
Equals

osinit.com Ссылочные Значимые Переопределение Equals

Слайд 7

osinit.com

osinit.com

Слайд 8

osinit.com

Ссылочные

Значимые

osinit.com Ссылочные Значимые

Слайд 9

osinit.com

Значимые типы

Целочисленные типы: byte, sbyte, short, ushort, int, uint, long, ulong

osinit.com Значимые типы Целочисленные типы: byte, sbyte, short, ushort, int, uint, long, ulong

Слайд 10

osinit.com

Значимые типы

Типы с плавающей запятой: float, double,decimal

osinit.com Значимые типы Типы с плавающей запятой: float, double,decimal

Слайд 11

osinit.com

Значимые типы

Логический тип: bool

osinit.com Значимые типы Логический тип: bool

Слайд 12

osinit.com

Значимые типы

Символьный тип: char

osinit.com Значимые типы Символьный тип: char

Слайд 13

osinit.com

Значимые типы

Составной тип: struct

osinit.com Значимые типы Составной тип: struct

Слайд 14

osinit.com

Значимые типы

Особенности преобразования значимых типов

osinit.com Значимые типы Особенности преобразования значимых типов

Слайд 15

osinit.com

Составной тип: enum

Значимые типы

osinit.com Составной тип: enum Значимые типы

Слайд 16

osinit.com

Строковая переменная: string

Ссылочные

Compare: сравнивает две строки с учетом текущей локали пользователя
CompareOrdinal:

osinit.com Строковая переменная: string Ссылочные Compare: сравнивает две строки с учетом текущей
сравнивает две строки без учета локали
Contains: определяет, содержится ли подстрока в строке
Concat: соединяет строки
CopyTo: копирует часть строки, начиная с определенного индекса в массив
EndsWith: определяет, совпадает ли конец строки с подстрокой
Format: форматирует строку
IndexOf: находит индекс первого вхождения символа или подстроки в строке
Insert: вставляет в строку подстроку
Join: соединяет элементы массива строк
LastIndexOf: находит индекс последнего вхождения символа или подстроки в строке
Replace: замещает в строке символ или подстроку другим символом или подстрокой
Split: разделяет одну строку на массив строк
Substring: извлекает из строки подстроку, начиная с указанной позиции
ToLower: переводит все символы строки в нижний регистр
ToUpper: переводит все символы строки в верхний регистр
Trim: удаляет начальные и конечные пробелы из строки

Слайд 17

osinit.com

Класс

Ссылочные

Класс – структура данных, описывающая объект предметной области.
Как правило, класс состоит

osinit.com Класс Ссылочные Класс – структура данных, описывающая объект предметной области. Как
из свойств (полей) содержащих данные и методов – функций меняющих эти данные.

Слайд 18

osinit.com

Интерфейс

Ссылочные

Интерфейс содержит перечень методов, которые должны быть реализованы в классе.

osinit.com Интерфейс Ссылочные Интерфейс содержит перечень методов, которые должны быть реализованы в классе.

Слайд 19

osinit.com

Абстрактные типы данных

osinit.com Абстрактные типы данных

Слайд 20

osinit.com

Список - List

osinit.com Список - List

Слайд 21

osinit.com

Уникальный список - ISet

osinit.com Уникальный список - ISet

Слайд 22

osinit.com

Словарь - Dictionary

osinit.com Словарь - Dictionary

Слайд 23

osinit.com

Очередь - Queue и Стек - Stack

Stack

Queue

osinit.com Очередь - Queue и Стек - Stack Stack Queue

Слайд 24

osinit.com

Concurrent collections

Пространство_имен System.Collections.Concurrent содержит коллекции, которые являются потокобезопасными и специально предназначены для

osinit.com Concurrent collections Пространство_имен System.Collections.Concurrent содержит коллекции, которые являются потокобезопасными и специально
параллельного программирования.
Это означает, что они могут безопасно использоваться в многопоточной программе, где возможен одновременный доступ к коллекции со стороны двух или больше параллельно исполняемых потоков и минимизируют возможные ситуации некорректно записи данных в коллекции.

Слайд 25

osinit.com

Immutable collections – неизменяемые коллекции

Неизменяемые коллекции не могут быть изменены после их

osinit.com Immutable collections – неизменяемые коллекции Неизменяемые коллекции не могут быть изменены
создания.
Все операции, которые обычно изменяют коллекцию, возвращают новый экземпляр.

Слайд 26

osinit.com

Как правильно выбрать тип данных?

Исходя из контекста решаемой задачи:

Если предполагается работа только

osinit.com Как правильно выбрать тип данных? Исходя из контекста решаемой задачи: Если
с целыми числами то можно выбрать тип int
Если числа не могут быть отрицательными то используем беззнаковые типы, например uint
Важен порядок обработки – используем коллекцию Queue
Число объектов заранее неизвестно – используем List<>
И т.д.

Однопоточные сценарии: классические коллекции
Запись из множества потоков: concurrent коллекции, защищающие внутреннее состояние и имеющие подходящее для конкурентной записи API