Тип string
(синоним System.String
) представляет беспрерывную последовательность юникод символов. Строковые литералы указываются внутри двойных кавычек.
Рубрика: C#
C#: символы (Characters)
Тип char
(синоним System.Char
) представляет юникод символы и занимает 2 байта. Литералы char указываются внутри одинарных кавычек:
1 | char c = 'A'; |
C#: логические (Boolean) типы и операторы
Тип bool
(он же System.Boolean
) — логическое значение, которому может быть присвоен литерал true
или false
. Тип bool
требует всего один бит для хранения значения в памяти, однако фактически он занимает один байт — минимальный размер, с которым может работать процессор. Чтобы избежать неэффективного использования памяти в случае с массивами, в фреймворке есть класс BitArray
(в пространстве имен System.Collections
), который использует один бит для логических значений.
C#: числовые типы (Numeric Types)
Тип | SYSTEM псевдоним | Суффикс | Размер | Диапазон |
---|---|---|---|---|
Целые числа со знаком (Signed integer) | ||||
sbyte | SByte | 8 bits | –27 до 27–1 | |
short | Int16 | 16 bits | –215 до 215–1 | |
int | Int32 | 32 bits | –231 до 231–1 | |
long | Int64 | L | 64 bits | –263 до 263–1 |
Целые числа бес знака (Unsigned integer) | ||||
byte | Byte | 8 bits | 0 до 28–1 | |
ushort | UInt16 | 16 bits | 0 до 216–1 | |
uint | UInt32 | U | 32 bits | 0 до 232–1 |
ulong | UInt64 | UL | 64 bits | 0 до 264–1 |
Реальные числа (Real number) | ||||
float | Single | F | 32 bits | ± (~10–45 до 1038) |
double | Double | D | 64 bits | ± (~10–324 до 10308) |
decimal | Decimal | M | 128 bits | ± (~10–28 до 1028) |
C#: типы данных
Тип — это некая общая схема значения (данных). Переменная — участок памяти, который может содержать разные значения (в отличие от константы, которая может содержать только одно значение). Диапазон возможных значений переменной определяется ее типом.
C#: синтаксис
Синтаксис и другие основные моменты C#.
Join в LINQ
SQL для выполнения объединения данных из нескольких таблиц предусматривает четыре вида объединений:
- INNER JOIN (или просто JOIN) — возвращает те (и только те) записи из двух таблиц, которые отвечают условию ON (остальные записи в выборку не попадают)
- LEFT OUTER JOIN (или просто LEFT JOIN) — возвращает все записи первой (левой) таблицы и отвечающие условию ON записи из второй (правой) таблицы; если для записи из первой таблицы нет соответствий во второй таблице, то она все равно попадет в выборку, а запись из второй таблицы будет заменена на NULL
- RIGHT OUTER JOIN (или просто RIGHT JOIN) — тоже самое, что и LEFT JOIN, но таблицы меняются местами, т.е. возвращаются все записи из второй таблицы и отвечающие условию ON записи из первой таблицы или NULL
- FULL OUTER JOIN — возвращает все записи из первой таблицы и все записи из второй таблицы, объединяя их по условию ON, при этом в обеих таблицах недостающие соотвеnствия заменяются на NULL
В LINQ все виды объединений можно выполнить с помощью выражений join
и into
в синтаксисе запросов и операторов Join()
, GroupJoin()
, DefaultIfEmpty()
и Union()
в синтаксисе методов.
LINQ C#
LINQ — Language Integrated Query (Внутриязыковой запрос) — технология, представляющая собой набор функций, позволяющих писать структурированные типобезопасные запросы к локальным объектам-коллекциям и удаленным источникам данных.
С помощью LINQ можно писать запросы к любой коллекции, реализующей интерфейсIEnumerable<>
, например, к массивам, спискам (list), XML DOM, удаленным источникам данных, таким как таблицы SQL сервера. LINQ объединяет преимущества динамических запросов и проверки типов при компиляции.
Перечисления и коллекции в C#
Платформа .NET содержит набор типов для хранения и управления коллекциями объектов: списки с изменяемыми размерами, связанные списки, отсортированные и неотсортированные словари, массивы.
Сериализация (Serialization) в C#
Сериализация — процесс преобразования объекта или группы связанных объектов в поток байт или набор XML узлов для сохранения (в базу данных, файл и т.д.) или передачи (например, по сети). Десериализация — обратный процесс — восстановление объекта из потока байт или XML узлов. Сериализация обычно используется для передачи объектов по сети или за границы приложения, для сохранения объектов внутри файлов или базы данных, а также для глубокого копирования объектов.
Классы для сериализации располагаются в двух пространствах имен: System.Runtime.Serialization
и System.Xml.Serialization
.