Solo un poco de una idea:
Por ejemplo, intrepresenta un solo entero, int[]representa una matriz de enteros.
Para inicializar la matriz con dimensiones específicas, puede usar la newpalabra clave, dando el tamaño entre corchetes después del nombre del tipo:
//create a new array of 32 ints.
int[] integers = new int[32];
Todas las matrices son tipos de referencia y siguen la semántica de referencia. Por lo tanto, en este código, aunque los elementos individuales son tipos de valores primitivos, la integersmatriz es un tipo de referencia. Entonces si luego escribes:
int[] copy = integers;
esto simplemente asignará la copia variable completa para referirse a la misma matriz, no creará una nueva matriz.
La sintaxis de matriz de C # es flexible, le permite declarar matrices sin inicializarlas para que la matriz se pueda dimensionar dinámicamente más adelante en el programa. Con esta técnica, básicamente está creando una referencia nula y luego apuntando esa referencia a un tramo de ubicaciones de memoria asignadas dinámicamente solicitadas con una newpalabra clave:
int[] integers;
integers = new int[32];
Gracias.