Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Екзамен з комп. арх..doc
Скачиваний:
4
Добавлен:
17.09.2019
Размер:
449.02 Кб
Скачать

4. Система типів даних мови c#. Типи-значення.

Типи-значення

Посилальні типи

Змінна має

значення

посилання на значення

Змінна зберігається

в стеку

в кучі

Значення по замовченню

0, false, ‘\0’

null

Оператор присвоєння

копіює значення

копіює посилання

Типы значений состоят из двух основных категорий:

  • Структуры

  • Перечисления

Структуры делятся на следующие категории:

  • Числовые типы

    • Целочисленные типы

    • Типы с плавающей запятой

    • decimal

  • bool

  • Пользовательские структуры.

Основные характеристики типов значений

Переменные, основанные на типах значений, содержат непосредственно значения. При присвоении переменной одного типа значений другому создается копия присваиваемого значения. В этом заключается отличие от переменных ссылочного типа, при присвоении которых копируются ссылки на объекты, но не сами объекты.

Все типы значений являются неявными производными от System.ValueType.

В отличие от ссылочных типов, новый производный тип из типа значения создать нельзя. Однако, как и в ссылочных типах, структуры могут реализовывать интерфейсы.

В отличие от ссылочных типов тип значения не может содержать значение null. Однако благодаря типам, допускающим значение null, все же можно присваивать типам значений значение null.

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

5. Система типів даних мови c#. Типи-посилання.

Типи-значення

Посилальні типи

Змінна має

значення

посилання на значення

Змінна зберігається

в стеку

в кучі

Значення по замовченню

0, false, ‘\0’

null

Оператор присвоєння

копіює значення

копіює посилання

Типи посилання поділяються на 2 групи:

1. Вбудовані типи:

  • string

Тип даних string - це послідовність, що містить жодного чи будь-яке число знаків Юнікод. Незважаючи на те, що тип string є типом-посиланням, оператори рівності (== і! =) визначені для порівняння значень об'єктів типу string, а не посилань.

  • object

В уніфікованій системі типів C # всі типи, визначені і користувацькі, типи-посилання і типи-значення, успадковують безпосередньо чи опосередковано від Object. Змінним типу object можна призначати значення будь-яких типів.

Коли змінна типу значення перетвориться в об'єкт, кажуть, що вона упаковується. Коли змінна типу object перетворюється в тип значення, кажуть, що вона розпаковується.

2. Користувацькі типи:

  • сlass

  • interface

  • delegate

  • масиви

6. Масиви в c#: одновимірні, багатовимірні, ступеневі. Методи та властивості класу Array.

Массив — это структура данных, содержащая несколько переменных одного типа.Массивы объявляются со следующим типом.Type [ ] array_Name;

Примеры создания одномерных, многомерных массивов и ступенчатых массивов.

class TestArraysClass{

static void Main(){

int[] array1 = new int[5]; // Declare a single-dimensional array

int[] array2 = new int[] { 1, 3, 5, 7, 9 }; // Declare and set array element values

int[] array3 = { 1, 2, 3, 4, 5, 6 }; // Alternative syntax

int[,] multiDimensionalArray1 = new int[2, 3]; // Declare a two dimensional array

int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } }; // Declare and set array element values

int[][] jaggedArray = new int[6][]; // Declare a jagged array

jaggedArray[0] = new int[4] { 1, 2, 3, 4 };// Set the values of the first array in the jagged array structure }}

Массив имеет следующие свойства.

  • Массив может быть одномерным, многомерным или массивом массивов(ступенчатым).

  • Значение по умолчанию числовых элементов массива задано равным нулю, а элементы ссылок имеют значение NULL.

  • Невыровненный массив является массивом массивов и поэтому его элементы являются ссылочными типами и инициализируются значением null.

  • Индексация массивов начинается с 0

  • Элементы массива могут быть любых типов, включая тип массива.

  • Типы массива являются ссылочными типами, производными от абстрактного базового типа Array.Поэтому в C# во всех массивах можно использовать итерацию foreach.

Array

Класс который предоставляет методы для создания, изменения, поиска и сортировки массивов, то есть выступает в роли базового класса для всех массивов в среде CLR.

Свойства

IsFixedSize-Получает значение, показывающее, имеет ли список Array фиксированный размер.

IsReadOnly-Получает значение, указывающее, доступен ли объект Array только для чтения.

Length- Получает число, представляющее общее число элементов в массиве Array.

Rank Получает ранг (размерность) объекта Array.

Методы

Copy – позволяет копировать весь массив или его часть в другой массив.

IndexOf, LastIndexOf – определяют индексы первого и последнего вхождения образца в массив, возвращая значение -1, если такового вхождения не обнаружено.

Reverse – выполняет обращение массива, переставляя элементы в обратном порядке.

Sort – осуществляет сортировку массива.

BinarySearch – определяет индекс первого вхождения образца в отсортированный массив, используя алгоритм двоичного поиска.