Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Array.CreateInstance (Type, Int32, Int32, Int32)

 

Publicado: octubre de 2016

Crea una Array tridimensional de las longitudes de dimensión y el Type especificados, con una indización de base cero.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public static Array CreateInstance(
	Type elementType,
	int length1,
	int length2,
	int length3
)

Parámetros

elementType
Type: System.Type

Type de la matriz Array que se va a crear.

length1
Type: System.Int32

Tamaño de la primera dimensión de la Array que se va a crear.

length2
Type: System.Int32

Tamaño de la segunda dimensión de la matriz Array que se va a crear.

length3
Type: System.Int32

Tamaño de la tercera dimensión de la matriz Array que se va a crear.

Valor devuelto

Type: System.Array

Nueva matriz Array tridimensional del tipo Type especificado con la longitud especificada para cada dimensión, usando una indización de base cero.

Exception Condition
ArgumentNullException

El valor de elementType es null.

ArgumentException

elementType no es un Type válido.

NotSupportedException

No se admite elementType. Por ejemplo, no se admite Void.

O bien

elementType es un tipo genérico abierto.

ArgumentOutOfRangeException

length1 es menor que cero.

O bien

length2 es menor que cero.

O bien

length3 es menor que cero.

A diferencia de la mayoría de las clases, Array proporciona el CreateInstance método, en lugar de constructores públicos, para permitir el acceso en tiempo de ejecución.

Elementos de tipo de referencia se inicializan en null. Elementos de tipo de valor se inicializan en cero.

Este método es una O (n) operación, donde n es el producto de length1, length2, y length3.

En el ejemplo de código siguiente se muestra cómo crear e inicializar un tridimensional Array.

using System;
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a three-dimensional Array of type Object.
      Array my3DArray=Array.CreateInstance( typeof(Object), 2, 3, 4 );
      for ( int i = my3DArray.GetLowerBound(0); i <= my3DArray.GetUpperBound(0); i++ )
         for ( int j = my3DArray.GetLowerBound(1); j <= my3DArray.GetUpperBound(1); j++ )
            for ( int k = my3DArray.GetLowerBound(2); k <= my3DArray.GetUpperBound(2); k++ )
               my3DArray.SetValue( "abc" + i + j + k, i, j, k );

      // Displays the values of the Array.
      Console.WriteLine( "The three-dimensional Array contains the following values:" );
      PrintValues( my3DArray );
   }


   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The three-dimensional Array contains the following values:
    abc000    abc001    abc002    abc003
    abc010    abc011    abc012    abc013
    abc020    abc021    abc022    abc023
    abc100    abc101    abc102    abc103
    abc110    abc111    abc112    abc113
    abc120    abc121    abc122    abc123
*/

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: