Массивы. Часть 4. Неявно типизированные массивы. Ключевое слово var

Массивы. Часть 4. Неявно типизированные массивы. Ключевое слово var


Содержание


1. Какие переменные называются неявно типизированными?

Неявно типизированные переменные – это переменные, для которых отсутствует определение типа при их объявлении (например int, float). Вместо названия типа используется ключевое слово var.

При объявлении неявно типизированной переменной тип этой переменной определяется компилятором на основе значения которым она инициализируется. Если инициализирующее значение есть целочисленным, то переменная получает тип int. Если инициализирующее значение есть значением с плавающей точкой, то переменная получает тип double и т.п.

Итак, неявно типизированная переменная обязательно должна быть инициализирована при ее объявлении.

 

2. Как объявляется неявно типизированный одномерный массив? Ключевое слово var. Примеры

В языке C# можно объявлять неявно-типизированные массивы. Объявление неявно-типизированных массивов подобно объявлению неявно типизированных одиночных переменных.

Общая форма объявления неявно типизированного одномерного массива:

var имя_массива = new[] { значение1, значение2, ..., значениеN }

где

  • имя_массива – непосредственно имя массива;
  • ­значение1, значение2, значениеN – набор значений, которые получают элементы массива. На основе типа данных этих значений определяется тип элементов массива.

Пример.

// пример объявления неявно типизированных одномерных массивов
var A = new[] { 5, 10, 23, 16, 8 }; // тип элементов массива - int, количество элементов - 5
var B = new[] { true, false, false }; // тип элементов bool, количество элементов - 3
var C = new[] { 'A', ';', '\'', '\n', '5', 'z' }; // тип элементов char, количество - 6
var X = new[] { 2.86, 2.0, 3.5 }; // тип элементов double, количество - 3
int d;
bool b;
char c;
float f;

d = A[2]; // d = 23
b = B[1]; // b = false
c = C[4]; // c = '5'
f = (float)X[2]; // f = 3.5

 

3. Пример объявления и использования неявно типизированного двумерного массива
// неявно типизированный двумерный массив
// двумерный массив размером 4*3, тип элементов - int
var MI = new[,] { { 3, 5, -4 },
                  { 2, -1, 0 },
                  { 4, 9, 3 },
                  { -11, -5, 91 } };
// двумерный массив размером 3*4, тип элементов - char
var MC = new[,] { { '1', '2', '3', '4' },
                  { 'A', 'B', 'C', 'D' },
                  { 'e', 'f', 'g', 'h' } };
var MD = new[,] { { 0.2, 3.5 },
                  { 3.3, -3.88 } };
int i;
char c;
double d;

i = MI[2,1]; // i = 9
c = MC[0, 2]; // c = '3'
d = MD[1, 0]; // d = 3.3

 

4. Пример объявления и использования неявно типизированного трехмерного массива

Объявляется трехмерный массив M размером 2×3×4.

// трехмерный типизированный массив размером 2*3*4, тип элементов массива double
var M = new[, ,] {
                     {
                         { 1.0, 2.3, 4.5, 9.2 },
                         { -2.339, 5.66, 101.01, 0.1 },
                         { 10.34, 11.26, -8.239, 0.2 }
                     },
                     {
                         { 0.39, -8.45, 9.34, 0.223 },
                         { 19.239, 10.65, -8.08, 44.33 },
                         { 1, 2, 3, 5 }
                     }
                 };
double d;

d = M[0, 2, 3]; // d = 0.2
d = M[0, 0, 0]; // d = 1.0

 

5. Пример объявления и использования неявно типизированного ступенчатого массива

Объявляется неявно типизированный ступенчатый массив, который имеет 3 строки. В строке 1 количество элементов равно 6. В строке 2 количество элементов равно 3. В строке 3 количество элементов равно 5.

// неявно типизированный ступенчатый массив
var A = new[] {
                  new[] { 1, 3, 4, 10, 23, 46 },
                  new[] { 2, -4, 8 },
                  new[] { 0, -1, 2, -3, 0 }
              };
int d;
d = A[0][2]; // d = 2
d = A[2][3]; // d = -3


 

6. Пример объявления и использования неявно типизированного ступенчатого массива массивов
// неявно типизированный ступенчатый массив массивов
// массив имеет 2 строки, в каждой строке два массива размерами 2*3 и 2*4
var B = new[] {
                  new[,] {
                             { 11, 12, 13 },
                             { 14, 15, 16 },
                         },
                  new[,]
                         {
                             { 21, 22, 23, 24 },
                             { 25, 26, 27, 28 }
                         }
              };
int d;

d = B[0][1, 2]; // d = 16
d = B[1][0, 3]; // d = 24

 


Связанные темы