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)

 

Publicado: octubre de 2016

Crea una matriz Array bidimensional 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
)

Parámetros

elementType
Type: System.Type

Type de la 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 Array que se va a crear.

Valor devuelto

Type: System.Array

Nueva matriz Array bidimensional 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-

elementType es un tipo genérico abierto.

ArgumentOutOfRangeException

length1 es menor que cero.

-o-

length2 es menor que cero.

Unlike most classes, T:System.Array provides theOverload:System.Array.CreateInstance method, instead of public constructors, to allow for late bound access.

Reference-type elements are initialized to null. Value-type elements are initialized to zero.

This method is an O(n) operation, where n is the product of length1 and length2.

The following code example shows how to create and initialize a two-dimensional T:System.Array.

using System;
public class SamplesArray  {

   public static void Main()  {

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

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


   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 two-dimensional Array contains the following values:
    abc00    abc01    abc02
    abc10    abc11    abc12
*/

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: