Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Array.CreateInstance (Type, Int64[])

 

Data di pubblicazione: ottobre 2016

Crea un oggetto Array multidimensionale dell'oggetto Type specificato e delle lunghezze della dimensione, con indicizzazione in base zero. Le lunghezze delle dimensioni vengono specificate in una matrice di interi a 64 bit.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public static Array CreateInstance(
	Type elementType,
	params long[] lengths
)

Parametri

elementType
Type: System.Type

Oggetto Type dell'oggetto Array da creare.

lengths
Type: System.Int64[]

Matrice di interi a 64 bit che rappresentano le grandezze di ciascuna dimensione dell'oggetto Array da creare. Ogni intero nella matrice deve essere compreso tra zero e Int32.MaxValue, inclusi.

Valore restituito

Type: System.Array

Nuovo oggetto Array multidimensionale dell'oggetto Type specificato, con la lunghezza specificata per ogni dimensione, usando l'indicizzazione in base zero.

Exception Condition
ArgumentNullException

elementType è null.

-oppure-

lengths è null.

ArgumentException

elementType non è un oggetto Type valido.

-oppure-

La matrice di lengths contiene meno di un elemento.

NotSupportedException

elementType non è supportato. Ad esempio, Void non è supportato.

-oppure-

elementType è un tipo generico aperto.

ArgumentOutOfRangeException

Qualsiasi valore in lengths è minore di zero o maggiore di Int32.MaxValue.

A differenza della maggior parte delle classi, Array fornisce il CreateInstance (metodo), anziché i costruttori pubblici, per consentire l'accesso ad associazione tardiva.

Il numero di elementi di lengths matrice deve essere uguale al numero di dimensioni nel nuovo Array. Ogni elemento del lengths matrice debba specificare la lunghezza della dimensione corrispondente nel nuovo Array.

Gli elementi di tipo di riferimento vengono inizializzati null. Gli elementi di tipo di valore vengono inizializzati a zero.

Questo metodo è un'operazione O (n) operazione, in cui n è il prodotto di tutti i valori lengths.

Esempio di codice seguente viene illustrato come creare e inizializzare un oggetto multidimensionale Array.

using System;
public class SamplesArray  {

   public static void Main()  {

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

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


   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 four-dimensional Array contains the following values:
    0000    0001    0002    0003    0004
    0010    0011    0012    0013    0014
    0020    0021    0022    0023    0024
    0030    0031    0032    0033    0034
    0100    0101    0102    0103    0104
    0110    0111    0112    0113    0114
    0120    0121    0122    0123    0124
    0130    0131    0132    0133    0134
    0200    0201    0202    0203    0204
    0210    0211    0212    0213    0214
    0220    0221    0222    0223    0224
    0230    0231    0232    0233    0234
    1000    1001    1002    1003    1004
    1010    1011    1012    1013    1014
    1020    1021    1022    1023    1024
    1030    1031    1032    1033    1034
    1100    1101    1102    1103    1104
    1110    1111    1112    1113    1114
    1120    1121    1122    1123    1124
    1130    1131    1132    1133    1134
    1200    1201    1202    1203    1204
    1210    1211    1212    1213    1214
    1220    1221    1222    1223    1224
    1230    1231    1232    1233    1234
*/

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: