Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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

Crea una matriz Array multidimensional de las longitudes de dimensión y el tipo Type especificados, con los límites inferiores especificados.

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

public static Array CreateInstance(
	Type elementType,
	int[] lengths,
	int[] lowerBounds
)

Parámetros

elementType
Tipo: System.Type
Type de la matriz Array que se va a crear.
lengths
Tipo: System.Int32[]
Matriz unidimensional que contiene el tamaño de cada una de las dimensiones de la matriz Array que se va a crear.
lowerBounds
Tipo: System.Int32[]
Matriz unidimensional que contiene el límite inferior (índice inicial) de cada una de las dimensiones de la matriz Array que se va a crear.

Valor devuelto

Tipo: System.Array
Nueva matriz Array multidimensional del tipo Type especificado con la longitud y los límites inferiores especificados para cada dimensión.

ExcepciónCondición
ArgumentNullException

elementType es null.

O bien

lengths es null.

O bien

lowerBounds es null.

ArgumentException

elementType no es un Type válido.

O bien

La matriz lengths contiene menos de un elemento.

O bien

Las matrices lengths y lowerBounds no contienen el mismo número de elementos.

NotSupportedException

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

O bien

elementType es un tipo genérico abierto.

ArgumentOutOfRangeException

Cualquier valor de lengths es menor que cero.

O bien

Cualquier valor de lowerBounds es demasiado grande, tanto que la suma del límite inferior y de la longitud de una dimensión es mayor que Int32.MaxValue.

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

Las matrices lengths y lowerBounds deben tener el mismo número de elementos. El número de elementos de la matriz lengths debe ser igual al número de dimensiones de la nueva matriz Array.

Cada uno de los elementos de la matriz lengths debe especificar la longitud de la dimensión correspondiente a la nueva matriz Array.

Cada uno de los elementos de la matriz lowerBounds debe especificar el límite inferior de la dimensión correspondiente de la nueva matriz Array. Por lo general, la biblioteca de clases de .NET Framework y muchos de los lenguajes de programación no controlan límites inferiores distintos de cero.

Los elementos de tipo de referencia se inicializan en null. Los elementos de tipo de valor se inicializan en cero.

Este método es una operación O(n), donde n es el producto de todos los valores de lengths.

En el siguiente ejemplo de código se muestra la forma de crear e inicializar una matriz Array multidimensional con los límites inferiores especificados.


using System;
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a multidimensional Array of type String.
      int[] myLengthsArray = new int[2] { 3, 5 };
      int[] myBoundsArray = new int[2] { 2, 3 };
      Array myArray=Array.CreateInstance( typeof(String), myLengthsArray, myBoundsArray );
      for ( int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++ )
         for ( int j = myArray.GetLowerBound(1); j <= myArray.GetUpperBound(1); j++ )  {
            int[] myIndicesArray = new int[2] { i, j };
            myArray.SetValue( Convert.ToString(i) + j, myIndicesArray );
         }

      // Displays the lower bounds and the upper bounds of each dimension.
      Console.WriteLine( "Bounds:\tLower\tUpper" );
      for ( int i = 0; i < myArray.Rank; i++ )
         Console.WriteLine( "{0}:\t{1}\t{2}", i, myArray.GetLowerBound(i), myArray.GetUpperBound(i) );

      // Displays the values of the Array.
      Console.WriteLine( "The Array contains the following values:" );
      PrintValues( myArray );
   }


   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.

Bounds:    Lower    Upper
0:    2    4
1:    3    7
The Array contains the following values:
    23    24    25    26    27
    33    34    35    36    37
    43    44    45    46    47
*/


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft