En la programación real, las matrices son objetos que se utilizan mucho. Al igual que Array, List, etc., todos son encapsulaciones de matrices.
Echemos un vistazo a los siguientes dos métodos de definición. ¿Podemos ver la diferencia entre ellos?
Atenuar tB1() como byte
Dim tB2() como byte = {}
Ambos definen una matriz de bytes y no hay elementos en la matriz.
Pero la diferencia se puede ver en las dos frases siguientes.
Debug.Print (tB1 no es nada)
Debug.Print (tB2 no es nada)
El resultado de la primera oración es Verdadero y el resultado de la segunda oración es Falso. Tenga en cuenta que tB1 es una matriz pero no se ha inicializado, lo que equivale a Nothing. Aunque no tiene elementos, se puede acceder a otras propiedades de tB2. Longitud y el resultado es 0, lo que indica que es una matriz vacía. Acceder a otros atributos de tB1, como Longitud, generará un error.
Todavía existen diferencias entre matrices vacías y matrices no inicializadas en muchos lugares.
Por ejemplo:
Depurar.Imprimir(System.Text.Encoding.Default.GetString(tB1))
Depurar.Imprimir(System.Text.Encoding.Default.GetString(tB2))
Aunque no hay elementos en tB1 y tB2, el sistema generará una excepción porque tB1 no se ha inicializado. Aunque tB2 no tiene elementos, representa una matriz con 0 elementos. El sistema no generará una excepción y devolverá una cadena vacía.
De esto se puede ver que todavía hay una diferencia entre Nothing y una matriz de 0 elementos. Esto es algo que pasamos por alto fácilmente.