Red de conocimiento informático - Material del sitio web - Uso de matrices en programación VB.NET

Uso de matrices en programación VB.NET

La matriz es un tipo de datos que se usa a menudo en programas. Aunque la matriz en Visual conserva muchas similitudes con Visual Basic en términos de estructura de sintaxis y otros aspectos, también tiene muchas diferencias con Visual Basic. . La mayor diferencia, y también la diferencia más intolerable entre los programadores de Visual Basic, son los dos puntos siguientes:

1. Al declarar una matriz en Visual Basic .Net, los puntos iniciales de los valores del índice en. todos los elementos de la matriz son "0", en lugar del punto inicial anterior del valor del índice en Visual Basic, que generalmente era "1". Este método de definición es muy similar al hermano gemelo de Visual Basic .Net, Visual C#.

2. Dado que las matrices tienen un punto de partida unificado en Visual Basic .Net, al definir una matriz en Visual Basic .Net, la palabra clave "Para" ya no es necesaria para establecer el alcance de la matriz. De esta forma, declarar una matriz en Visual Basic .Net será un poco más sencillo que en Visual Basic. La definición de matriz se presentará en detalle más adelante.

1. El contenido principal de esta sección:

En el siguiente contenido, se presentarán en detalle los siguientes puntos de conocimiento con ejemplos específicos:

1. Arreglos multidimensionales, también incluye arreglos estáticos y arreglos dinámicos, y su inicialización. y acceder a elementos en una matriz.

2. Vuelva a indicar la matriz, es decir, el uso de la declaración ReDim y la función de la palabra clave Preserve.

3. Utilice la declaración For Each . Next para recorrer cada elemento de la matriz. La declaración For Each . Next es la declaración más utilizada para manipular datos.

4. Declarar un procedimiento o función cuyos parámetros sean matrices. Dado que las matrices son tipos de referencia, al declarar funciones o procedimientos cuyos parámetros son matrices, el método de procesamiento es ligeramente diferente al de las funciones o procedimientos cuyos parámetros son matrices. tipos de valor.

5. Presente brevemente la clase Array y sus principales usos comunes, así como los métodos específicos para operar matrices a través de la clase Array.

La declaración Dim todavía se usa para declarar una matriz en Visual. La principal diferencia entre declarar una matriz y Visual Basic se ha mencionado brevemente en el contenido anterior. El siguiente código declara una matriz de cadenas con una longitud de "3" en Visual Basic .Net y la inicializa:

Dim arrString (2) As String = {"Monday", "Tuesday", "Wednesday" }

El siguiente código se aplica a una matriz de cadenas bidimensionales 2×2 y la inicializa:

Dim arrDate (1, 1) As String = {{"Monday", " 18"}, {"Tuesday", "19th"}}

La diferencia entre los arreglos estáticos y los arreglos dinámicos es que la longitud de los arreglos estáticos es fija, mientras que los arreglos dinámicos tienen una longitud fija. La longitud de la matriz no es fija.

Las dos matrices declaradas anteriormente son matrices estáticas y la función de los siguientes dos fragmentos de código es declarar una matriz unidimensional y una matriz bidimensional respectivamente e inicializarlas:

Dim arrString () Como String = {"Monday", "Tuesday", "Wednesday"}

'Declara una matriz dinámica unidimensional e inicialízala

Dim arrDate (,) As String = {{ " Monday", "18th"}, {"Tuesday", "19th"}}

'Declarar una matriz bidimensional dinámica e inicializarla

Para otros tipos de datos Para matrices con más dimensiones, los métodos de declaración e inicialización son básicamente los mismos que los anteriores. Solo necesita realizar las modificaciones correspondientes de acuerdo con las diferentes dimensiones y tipos de datos de la matriz.

Después de declarar e inicializar la matriz, se puede acceder a ella a través del valor de índice correspondiente del elemento en la matriz. Los siguientes dos fragmentos de código acceden a una de las matrices unidimensionales y bidimensionales. declarado e inicializado arriba Elemento:

Dim sTemp1 As String = arrString (1)

'Accede al segundo elemento en la matriz arrString

Dim sTemp2 As String. = arrDate (1 , 1)

'Accede a los elementos de la segunda fila y segunda columna en la matriz arrDate

3. Redeclaración de matrices:

La redeclaración de matrices en Visual Basic .Net es básicamente similar a la de Visual Basic, todavía usando la instrucción ReDim. Al utilizar la declaración Redim en Visual Basic .Net, debe prestar atención a los siguientes tres puntos:

1. La declaración ReDim solo puede aparecer a nivel de proceso. Esto significa que no puede utilizar la instrucción ReDim para volver a declarar una matriz en el código de nivel de clase o módulo.

2. La declaración ReDim solo cambia el tamaño de una o más dimensiones de una matriz declarada formalmente, pero no puede cambiar la dimensionalidad de la matriz.

3. La declaración ReDim no puede cambiar el tipo de datos de los elementos en la matriz. La diferencia con la declaración Dim que declara la matriz es que la matriz redeclarada no se puede inicializar en la declaración ReDim.

Cuando se utiliza ReDim para volver a declarar una matriz, la palabra clave más común es "Conservar". La función de "Preservar" es indicar si los elementos de la matriz original deben copiarse en la matriz redeclarada cuando se vuelve a declarar la matriz.

Compare los siguientes dos fragmentos de código:

Código 1:

Dim arrString (2) As String = {"Monday", "Tuesday", "Wednesday"}

ReDim Preserve arrString (4)

'Reestablece la matriz arrString, cambia la longitud de la matriz a 5 y copia los elementos de la matriz original en la nueva matriz

arrString (3) = "Jueves"

arrString (4) = "Viernes"

Código 2:

Dim arrString (2) As String = { "Lunes", "Martes", "Miércoles"}

ReDim arrString (4)

'Vuelva a declarar la matriz arrString, cambie la longitud de la matriz a 5 y haga no copiar la matriz original a la nueva matriz Element

arrString (0) = "Monday"

arrString (1) = "Tuesday"

arrString (2 ) = "Miércoles"

arrString (3) = "Thursday"

arrString (4) = "Friday"

Al comparar los dos fragmentos de código anteriores , se puede ver que en el primer fragmento de código, debido a que la palabra clave Preserve se usa en ReDim, por lo que cuando se vuelve a declarar la matriz, los elementos de la matriz original se copian en la nueva matriz, de modo que solo dos de los elementos deben inicializarse; y el segundo párrafo no utiliza la palabra clave Preserve, ningún elemento de la matriz original se incorpora a la nueva matriz, por lo que se inicializan todos los elementos de la matriz. En comparación, creo que tiene una comprensión más profunda de la redefinición de matrices y el uso de la palabra clave "Conservar".

Usa Photoshop para recortar fotos de una hermosa chica con permanente

Cómo recortar fotos de un vestido de novia transparente usando Photoshop

Photoshop: Deja que el niña, sé un "camaleón"

Usa Photoshop para crear una exquisita pared de fotos de bebé

Método de recorte de canal de belleza impresionante de Photoshop

Usa Photoshop para enseñarte cómo crear un magnífico efecto de luz

For The Each. La siguiente declaración parece estar hecha a medida solo para dos tipos de datos, uno es una colección y el otro es una matriz. A través de la instrucción For Each . Next, puede acceder fácilmente a cualquier elemento de la matriz. Analice detenidamente el siguiente código:

Dim arrString (2) As String = {"Monday", "Tuesday", "Wednesday"}

Dim Temp As String

Para cada temperatura en arrString

Si Temp = "Miércoles" Entonces

MsgBox ("Buscar cadena ""Miércoles"" en la matriz)

Salir para

'Salir para cada instrucción siguiente

Finalizar si

Siguiente

La función del código anterior es a través de The For Each. La siguiente instrucción accede a cada elemento de la matriz arrString. Si se encuentra que un elemento es la cadena "miércoles", aparecerá un cuadro emergente y se cerrará el bucle.

La misma función anterior también se puede lograr usando la declaración For Next, pero parece un poco poco profesional y un poco engorroso. El siguiente código es el código que usa la declaración For Next para lograr lo mismo. funciona como la instrucción For Each. Next anterior:

Dim i As Integer

For i = 0 To myString.Length - 1

If arrString ( i ) = "Miércoles" Luego

MsgBox ("Buscar la cadena ""Miércoles"" en la matriz)

Salir para

Finalizar si

Siguiente

5. Declare un procedimiento o función cuyos parámetros sean matrices:

Dado que las matrices son tipos de referencia, si usa matrices como parámetros, debe prestar más atención al definir procedimientos y funciones. El siguiente código declara un parámetro como una matriz. En el código visual típico del proceso, se puede ver que hay una palabra clave adicional "ByVal" antes de llamar al tipo de matriz. La función de la palabra clave "ByVal" es que el valor de la matriz no se puede cambiar durante el siguiente proceso de llamada. :

Sub DisplayArray ( ByVal myString ( ) As String )

End Sub

6. Una breve introducción a la clase System.Array y sus miembros:

La clase Array es una clase base y la clase base para todas las matrices en el tiempo de ejecución del lenguaje público. Proporciona métodos para crear, manipular, buscar y ordenar matrices. Cualquier elemento de la matriz es un valor de la matriz. La longitud de un Array es el número total de elementos que puede contener. El rango de una matriz es el número de dimensiones de la matriz. El límite inferior de una dimensión en un Array es el índice inicial de esa dimensión en el Array. Cada dimensión de un Array multidimensional puede tener límites diferentes. La Tabla 01 y la Tabla 02 son respectivamente los atributos comunes y los métodos comunes de la clase Array y sus descripciones:

Descripción del atributo

IsFixedSize Obtiene el valor que indica si el Array tiene un tamaño fijo.

IsReadOnly Obtiene un valor que indica si el Array es de sólo lectura.

Longitud obtiene el número total de elementos en todas las dimensiones de Array.

Rango obtiene el rango (es decir, la dimensión) de Array.

Tabla 01: Propiedades comunes y descripciones de la clase System.Array

Descripción del método

BinarySearch utiliza el algoritmo de búsqueda binaria para buscar valores en un Array ordenado unidimensional.

Borrar establece una serie de elementos en la matriz en cero, falso o una referencia nula (es decir: Nada). El valor de la operación específica depende del tipo de elemento.

Copiar copia parte de un Array en otro Array, realizando casting y boxing según sea necesario.

CopyTo copia todos los elementos del Array unidimensional actual al Array unidimensional especificado (comenzando desde el índice del Array de destino especificado).

GetLength obtiene el número de elementos en la dimensión especificada de Array.

GetLowerBound obtiene el límite inferior de la dimensión especificada en Array.

GetUpperBound obtiene el límite superior de la dimensión especificada de Array.

GetValue obtiene el valor del elemento especificado en el Array actual.

LastIndexOf devuelve el índice de la última aparición de un valor en un Array unidimensional o Array parcial.

Reverse invierte el orden de los elementos en un Array unidimensional o Array parcial.

SetValue establece el elemento especificado en la matriz actual al valor especificado.

Ordenar ordena los elementos de un objeto Array unidimensional.

Tabla 02: Métodos comunes de la clase System.Array y sus descripciones

Las funciones de los ejemplos que se presentan a continuación incluyen la declaración, inicialización, redeclaración, reinicialización y varias funciones en la matriz. Clasificación de elementos, recorrido de matrices, búsqueda, definición y llamada de métodos de procedimientos que toman matrices como parámetros, etc. Los siguientes son los pasos específicos para implementar este ejemplo:

1. Inicie Visual Studio .Net.

2. Después de seleccionar el menú Archivo | Nuevo | Proyecto, aparecerá el cuadro de diálogo Nuevo Proyecto.

3. Establezca el tipo de proyecto en Proyecto de Visual Basic.

4. Configure la plantilla como una aplicación de Windows.

5. Ingrese la matriz en el cuadro de texto Nombre.

6. Ingrese el proyecto en el cuadro de texto de ubicación y luego haga clic en el botón Aceptar. Esto generará una carpeta llamada "Array" en el directorio "Project" y creará una carpeta llamada "Array" en. it. Matriz de archivos de proyecto.

7. Cambie la ventana actual de Visual Studio .Net a la ventana Form1.vb (diseño), arrastre los siguientes componentes al formulario Form1 desde la pestaña Componentes de Windows Forms en la caja de herramientas. operaciones correspondientes:

Los componentes de cuatro botones se utilizan para crear "Crear una matriz unidimensional", crear "Crear una matriz bidimensional", implementar "ordenar una matriz unidimensional" e implementar "re - Definir una matriz unidimensional". Después de arrastrar estos cuatro componentes de botón al formulario de diseño de Form1, haga doble clic en estos cuatro componentes respectivamente, para que el sistema genere códigos de procesamiento correspondientes a los tiempos de clic de estos cuatro componentes en el archivo Form1.vb.

Un componente ListBox utilizado para mostrar el contenido de la matriz unidimensional creada.

8. Establezca las propiedades principales del componente de acuerdo con los valores de la Tabla 03:

Tipo de componente nombre de componente resultado de configuración de propiedad

Formulario Formulario1 Texto Matriz

Form1 MaximizeBox False

Form1 MinimizeBox False

Form1 FormBorderStyle FixedSingle

ListBox ListBox1 ItemHeight 12

ListBox1 Ubicación Punto (28, 169)

ListBox1 Tamaño Tamaño (246, 136)

Botón Botón1 Texto Crear una matriz unidimensional

Botón1 FlatStyle Flat

Texto Botón2 Crear una matriz bidimensional

Botón2 Estilo Plano Plano

Texto Botón3 Ordenar una matriz unidimensional

Botón3 Estilo Plano Plano

Texto del Botón4 Redefinir una matriz unidimensional

Botón4 Estilo Plano Plano

La tabla de valores de configuración de propiedades principal de cada componente en el formulario del proyecto de matriz

Y siga los pasos en la Figura 01 Ajuste la posición, el tamaño y la disposición de los componentes en el formulario:

9. Cambie la ventana actual de Visual Studio .Net a Form1.vb e ingrese a la interfaz de edición de Form1. Archivo .vb.

Luego reemplace el código de procesamiento correspondiente al evento Click del componente Button1 en Form1.vb con el siguiente código. La función del siguiente código es crear una matriz unidimensional mediante la creación de un cuadro de diálogo de entrada:

Subbotón privado1_Click (ByVal remitente como System.Object, ByVal y como System.EventArgs) Maneja el botón1.Click

Atenuar i como entero

Para i = 0 a 3

arrString ( i ) = InputBox ( "Ingrese una cadena en el cuadro de texto a continuación", "¡Ingrese una cadena para inicializar la matriz unidimensional creada!", "Elemento " i )

Siguiente

Button3.Enabled = True

Button4.Enabled = True

DisplayArray ( arrString )

End Sub

10. Utilice lo siguiente El código reemplaza el código de procesamiento correspondiente al evento Click del componente Button2 en Form1.vb. La función del siguiente código es crear una matriz bidimensional e inicializarla:

Sub Button2_Click privado (ByVal remitente como System.Object, ByVal y como System.EventArgs ) maneja Button2.Click

Dim arrDate ( , ) As String = {{"Monday", "18th"} , {"Tuesday", "19th"}}

'Crear una matriz bidimensional e inicializar

MsgBox ( arrDate (0, 1) )

'Acceda a los elementos de esta matriz bidimensional

p>

End Sub

11 Reemplace el código de procesamiento correspondiente al evento Click del componente Button3 en Form1.vb. con el siguiente código. La función del siguiente código es definir primero un proceso llamado "DisplayArray", este proceso puede ordenar los datos en una matriz unidimensional determinada y mostrarlos a través del ListBox.

El segundo paso es definir el evento Click de Button3. En este evento, se llama al proceso DisplayArray para ordenar los datos en la matriz unidimensional:

'Definir un proceso. para mostrar la información proporcionada a través del componente ListBox Cada elemento en la matriz de cadenas

Sub DisplayArray ( ByVal myString ( ) As String )

ListBox1.Items.Clear ( )

Atenuar temperatura como cadena

Para cada temperatura en myString

ListBox1.Items.Add (Temp)

Siguiente

Finalizar sub

Sub botón privado3_Click (ByVal remitente como System.Object, ByVal y como System.EventArgs) Maneja el botón3.Click

Array.Sort (arrString)

DisplayArray ( arrString )

End Sub

12. Reemplace el código de procesamiento correspondiente al evento Click del componente Button4 en Form1.vb con el siguiente código. El código es para redefinir la matriz unidimensional:

Private Sub Button4_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

ReDim Preserve arrString ( 5)

'Tenga en cuenta la función de la palabra clave Preservar

Dim i As Integer

For i = 4 To 5

arrString ( i ) = InputBox ( "Ingrese una cadena en el cuadro de texto a continuación", "¡Ingrese una cadena para inicializar la matriz unidimensional recreada!", "Elemento " i )

Siguiente

DisplayArray ( arrString )

End Sub

13. Guarde todas las modificaciones anteriores y ahora se completará todo el trabajo en el proyecto de matriz. En este momento, haga clic en la tecla de acceso directo F5 para ejecutar el programa. La Figura 02 y la Figura 03 son la interfaz en ejecución después de compilar el programa:

Figura 03: La interfaz después de ordenar los elementos en forma unidimensional. matriz

8. Resumen:

Este artículo presenta primero la diferencia entre las matrices en Visual Basic .Net y la versión original de Visual Basic. Las matrices en Visual Basic .Net se parecen más a Visual C# en connotación. En segundo lugar, presenta los métodos de declaración de matrices, incluidas matrices unidimensionales, matrices multidimensionales, matrices estáticas y matrices dinámicas, inicialización de matrices y acceso a elementos en las matrices. Luego presenta la nueva declaración del método de matriz, es decir, el uso de la declaración ReDim y la función de la palabra clave Preserve. Y utilice la declaración For Each . Next para recorrer cada elemento de la matriz. La declaración For Each . Next es la declaración más utilizada para manipular datos. Es mucho más conveniente que utilizar la declaración For Next. Finalmente, presentamos los métodos de llamada de procedimientos y funciones que toman matrices como parámetros, así como la clase Array y sus principales métodos de uso.

La razón por la que introducimos el método de llamada de procedimientos y funciones que toman matrices como parámetros es porque las matrices son tipos de referencia, por lo que al declarar funciones o procedimientos cuyos parámetros son matrices, el método de procesamiento es ligeramente diferente de aquellos de funciones o procedimientos cuyos parámetros son tipos de valor. Array es una clase proporcionada en .Net FrameWorkSDK para operar matrices. Este artículo presenta principalmente los métodos específicos de uso de la clase Array para operar matrices. Lo anterior es el contenido principal de este artículo. Creo que los lectores que lo lean detenidamente y practiquen en consecuencia deben haberlo dominado.