C#.Значение скобок в массиве массивов

161
02 сентября 2021, 14:40
int[][,] jaggedArray4 = new int[3][,] 

Обясните значение каждых скобок при объявлении массива массивов,ведь я понимаю только значение [3],что значит что длина массива - 3.А вот почему первые скобки пустые,а запятые есть в второй и в четвертей?

Answer 1

int [][,] jaggedArray4 - это одномерный массив, элементами которого являются двумерные массивы типа int [,].

int [,] - это ссылочный тип. Это означает, что в переменной типа int [,] лежит адрес объекта-массива в памяти, а не сам массив со всеми его элементами. Соответственно, когда вы пишете new int[3][,] - вы создаете массив, в котором могут лежать ссылки на двумерные массивы. По умолчанию элементы ни на что не указывают, так что скобки используются пустые - они служат только для обозначения типа, а не для задания размеров.

Реальные внутренние массивы нужно создать дополнительными вызовами, с указанием реального размера. Он может быть разным для каждого из массивов:

int[][,] jaggedArray4 = new int[3][,] 
jaggedArray4[0] = new int[5,6];
jaggedArray4[1] = new int[100,100];
jaggedArray4[2] = new int[1,1];
READ ALSO
Не могу подключиться к локальному серверу MySQL из C#

Не могу подключиться к локальному серверу MySQL из C#

Хочу подключиться к локальному серверу MySQL через приложение C#, но получаю ошибку с первого скрина: named pipes provider error 40

209
CheckBox Checked во вложенных в MenuItem

CheckBox Checked во вложенных в MenuItem

Подскажите как сделать что бы при нажатии на CheckBox "File" в состоянии false со всех других в "Sub Menu" снимались галочки и если последних элемент в "Sub Menu" перевожу...

99
Как найти ошибку в запросе?

Как найти ошибку в запросе?

Есть большой запрос, который не работаетВ исключении написано что {"ORA-00911: неверный символ"}

173
Как в основной форме Отменить backgroundWorker другой формы

Как в основной форме Отменить backgroundWorker другой формы

РебятаМне нужно отменить BakgroundWorker из основной формы, которая была запущена в другой форме

307