Arrays (Komponentenerweiterungen für C++)

Platform::Array<T> geben C++/CX ein, oder array das - Schlüsselwort in C++/CLI deklariert, ein Array eines angegebenen Typs und des Anfangswerts.

Alle Plattformen

Das Array muss deklariert werden, indem der Modifizierer des Handle-zuObjekts (^) nach der spitze Klammer (>) in der Deklaration verwendet.

Die Anzahl der Elemente des Arrays ist nicht Teil des Typs.Eine Arrayvariable kann Arrays unterschiedliche Größen verweisen.

Anders als Standard-C++ ist Indizierung kein Synonym für Zeigerarithmetik und ist nicht auswechselbar.

Weitere Informationen zu Arrays, finden Sie unter:

Windows-Runtime

Arrays sind Member des Platform-Namespace.Arrays können nur eindimensional sein.

Syntax

Im ersten Beispiel der Syntax verwendet das ref new Aggregatsschlüsselwort, um ein Array zuzuordnen.Das zweite Beispiel deklariert ein lokales Array.

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = ref new [Platform::]Array< initialization-type > [{initialization-list [,...]}]

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = {initialization-list [,...]}
  • [optional]Qualifizierer
    Eine oder mehrere dieser Speicherklassenspezifizierer: änderbar, flüchtig, const, extern, statisch.

  • array-type
    Der Typ der Arrayvariablen.Gültige Typen sind Windows-Runtime-Klassen und grundlegende Typen, Verweisklassen und Strukturen, Wertklassen und Strukturen und systemeigene Zeiger (type*).

  • [optional]rank
    Die Anzahl der Dimensionen des Arrays.Muss 1 (null) sein.

  • identifier
    Der Name der Arrayvariablen.

  • initialization-type
    Der Typ der Werte, die das Array initialisieren.In der Regel sind array-typeinitialization-type und der gleiche Typ.Allerdings können die Typen unterscheiden, wenn eine Konvertierung von initialization-type zu array-type für - Beispiel gibt, wenn initialization-type von array-type abgeleitet wird.

  • [optional]initialization-list
    Eine durch Trennzeichen getrennte Liste von Werten in geschweiften Klammern, die Elemente des Arrays initialisieren.Wenn rank-size-list(3) waren, das ein eindimensionales Array mit 3 Elementen deklariert, kann initialization list{1,2,3} sein.

Hinweise

Sie können zur Kompilierzeit feststellen, ob ein Typ mit Verweiszählung verwendet ein Array mit __is_ref_array(type) ist.Weitere Informationen finden Sie unter Compilerunterstützung für Typmerkmale (Komponentenerweiterungen für C++).

ts4c4dw6.collapse_all(de-de,VS.110).gifAnforderungen

Compileroption: /ZW

ts4c4dw6.collapse_all(de-de,VS.110).gifBeispiele

Im folgenden Beispiel wird ein eindimensionales Array, das 100 Elemente verfügt.

// cwr_array.cpp
// compile with: /ZW
using namespace Platform;
ref class MyClass {};
int main() {
   // one-dimensional array
   Array<MyClass^>^ My1DArray = ref new Array<MyClass^>(100);
   My1DArray[99] = ref new MyClass();
}

Common Language Runtime

Syntax

Im ersten Beispiel der Syntax gcnew verwendet das - Schlüsselwort, um ein Array zuzuordnen.Das zweite Beispiel deklariert ein lokales Array.

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = gcnew [cli::]array< initialization-type [,rank] >(rank-size-list[,...]) [{initialization-list [,...]}]

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = {initialization-list [,...]}
  • [optional]Qualifizierer
    Eine oder mehrere dieser Speicherklassenspezifizierer: änderbar, flüchtig, const, extern, statisch.

  • array-type
    Der Typ der Arrayvariablen.Gültige Typen sind Windows-Runtime-Klassen und Grundlagentypen, Verweisklassen und Strukturen, Wertklassen und Strukturen, systemeigene Zeiger (type*) und systemeigene Typen der HÜLSE (Plain Old Data).

  • [optional]rank
    Die Anzahl der Dimensionen des Arrays.Der Standardwert ist 1; das Maximum ist 32.Jede Dimension des Arrays ist selbst ein Array.

  • identifier
    Der Name der Arrayvariablen.

  • initialization-type
    Der Typ der Werte, die das Array initialisieren.In der Regel sind array-typeinitialization-type und der gleiche Typ.Allerdings können die Typen unterscheiden, wenn eine Konvertierung von initialization-type zu array-type für - Beispiel gibt, wenn initialization-type von array-type abgeleitet wird.

  • rank-size-list
    Eine durch Trennzeichen getrennte Liste der Größe jeder Dimension im Array.Falls der initialization-list-Parameter angegeben wird, kann der Compiler die Größe jeder Dimension ableiten und rank-size-list kann ausgelassen werden.Weitere Informationen finden Sie unter Gewusst wie: Erstellen Sie Multidimensions-Arrays.

  • [optional]initialization-list
    Eine durch Trennzeichen getrennte Liste von Werten in geschweiften Klammern, die Elemente des Arrays initialisieren.Oder eine durch Trennzeichen getrennte Liste von geschachtelten InitialisierungListe-Elementen, die die Elemente in einem mehrdimensionalen Feld initialisieren.

    Wenn rank-size-list(3) waren, das ein eindimensionales Array mit 3 Elementen deklariert, kann initialization list{1,2,3} sein.Wenn rank-size-list(3,2,4) waren, das ein dreidimensionales Array mit 3 Elementen in der ersten Dimension deklariert, können 2 Elemente in zweites und 4 Elemente im dritten, initialization-list{{1,2,3},{0,0},{-5,10,-21,99}} sein.)

Hinweise

array ist im Platform-, default- und cli-Namespaces (Komponentenerweiterungen für C++)-Namespace.

Wie Standard-C++ sind die Indizes eines Arrays nullbasiert, und ein Array ist indiziert, indem es verwendet eckige Klammern ([]).Anders als Standard-C++ werden die Indizes eines mehrdimensionalen Feldes in einer Liste von Indizes für jede Dimension anstelle eines Satzes Operatoren angegeben der eckigen Klammern ([]) für jede Dimension.Beispielsweise Bezeichner[index1, index2] anstelle von Bezeichner[index1][ index2].

Alle verwalteten Arrays erben von System::Array.Jede Methode oder Eigenschaft von System::Array können direkt der Arrayvariablen angewendet werden.

Wenn Sie ein Array zuordnen, dessen Elementtyp Zeiger-zu einer verwalteten Klasse befindet, werden die Elemente 0 initialisiert.

Wenn Sie ein Array zuordnen, dessen Elementtyp ein Werttyp V ist, wird der Standardkonstruktor für V auf jedes Arrayelement angewendet.Weitere Informationen finden Sie unter .NET Framework-Entsprechungen der systemeigenen Typen in C++ (C++/CLI).

Zur Kompilierzeit können Sie feststellen, ob ein Typ ein Array der CLR (Common Language Runtime) mit __is_ref_array(type) ist.Weitere Informationen finden Sie unter Compilerunterstützung für Typmerkmale (Komponentenerweiterungen für C++).

ts4c4dw6.collapse_all(de-de,VS.110).gifAnforderungen

Compileroption: /clr

ts4c4dw6.collapse_all(de-de,VS.110).gifBeispiele

Im folgenden Beispiel wird ein eindimensionales Array, das 100 Elemente verfügt, und ein dreidimensionales Array, das 3 Elemente in der ersten Dimension verfügt, 5 Elemente in zweites und 6 Elemente im dritten.

// clr_array.cpp
// compile with: /clr
ref class MyClass {};
int main() {
   // one-dimensional array
   array<MyClass ^> ^ My1DArray = gcnew array<MyClass ^>(100);
   My1DArray[99] = gcnew MyClass();

   // three-dimensional array
   array<MyClass ^, 3> ^ My3DArray = gcnew array<MyClass ^, 3>(3, 5, 6);
   My3DArray[0,0,0] = gcnew MyClass();
}

Siehe auch

Konzepte

Komponentenerweiterungen für Laufzeitplattformen