Lire en anglais

Partager via


Type.MakeArrayType Méthode

Définition

Retourne un objet Type qui représente un tableau du type actuel.

Surcharges

MakeArrayType()

Retourne un objet Type qui représente un tableau unidimensionnel du type actuel, avec une limite inférieure de zéro.

MakeArrayType(Int32)

Retourne un objet Type qui représente un tableau du type actuel, avec le nombre spécifié de dimensions.

Exemples

L’exemple de code suivant crée des types de tableau ( refByRef en Visual Basic) et de pointeur pour la Test classe .

C#
using System;
using System.Reflection;

public class Example
{
    public static void Main()
    {
        // Create a Type object that represents a one-dimensional
        // array of Example objects.
        Type t = typeof(Example).MakeArrayType();
        Console.WriteLine("\r\nArray of Example: {0}", t);

        // Create a Type object that represents a two-dimensional
        // array of Example objects.
        t = typeof(Example).MakeArrayType(2);
        Console.WriteLine("\r\nTwo-dimensional array of Example: {0}", t);

        // Demonstrate an exception when an invalid array rank is
        // specified.
        try
        {
            t = typeof(Example).MakeArrayType(-1);
        }
        catch(Exception ex)
        {
            Console.WriteLine("\r\n{0}", ex);
        }

        // Create a Type object that represents a ByRef parameter
        // of type Example.
        t = typeof(Example).MakeByRefType();
        Console.WriteLine("\r\nByRef Example: {0}", t);

        // Get a Type object representing the Example class, a
        // MethodInfo representing the "Test" method, a ParameterInfo
        // representing the parameter of type Example, and finally
        // a Type object representing the type of this ByRef parameter.
        // Compare this Type object with the Type object created using
        // MakeByRefType.
        Type t2 = typeof(Example);
        MethodInfo mi = t2.GetMethod("Test");
        ParameterInfo pi = mi.GetParameters()[0];
        Type pt = pi.ParameterType;
        Console.WriteLine("Are the ByRef types equal? {0}", (t == pt));

        // Create a Type object that represents a pointer to an
        // Example object.
        t = typeof(Example).MakePointerType();
        Console.WriteLine("\r\nPointer to Example: {0}", t);
    }

    // A sample method with a ByRef parameter.
    //
    public void Test(ref Example e)
    {
    }
}

/* This example produces output similar to the following:

Array of Example: Example[]

Two-dimensional array of Example: Example[,]

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at System.RuntimeType.MakeArrayType(Int32 rank) in c:\vbl\ndp\clr\src\BCL\System\RtType.cs:line 2999
   at Example.Main()

ByRef Example: Example&
Are the ByRef types equal? True

Pointer to Example: Example*

 */

MakeArrayType()

Source:
Type.cs
Source:
Type.cs
Source:
Type.cs

Retourne un objet Type qui représente un tableau unidimensionnel du type actuel, avec une limite inférieure de zéro.

C#
public abstract Type MakeArrayType ();
C#
public virtual Type MakeArrayType ();

Retours

Objet Type qui représente un tableau unidimensionnel du type actuel, avec une limite inférieure de zéro.

Exceptions

La méthode appelée n’est pas prise en charge dans la classe de base. Les classes dérivées doivent fournir une implémentation.

Le type actuel est TypedReference.

- ou -

Le type actuel est un type ByRef. Autrement dit, IsByRef retourne true.

Remarques

La MakeArrayType méthode permet de générer des types de tableaux dont les types d’éléments sont calculés au moment de l’exécution.

Note Le Common Language Runtime fait une distinction entre les vecteurs (c’est-à-dire les tableaux unidimensionnels qui sont toujours de base zéro) et les tableaux multidimensionnels. Un vecteur, qui n’a toujours qu’une seule dimension, n’est pas identique à un tableau multidimensionnel qui n’a qu’une seule dimension. Cette surcharge de méthode ne peut être utilisée que pour créer des types vectoriels, et c’est la seule façon de créer un type de vecteur. Utilisez la surcharge de MakeArrayType(Int32) méthode pour créer des types de tableaux multidimensionnels.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

MakeArrayType(Int32)

Source:
Type.cs
Source:
Type.cs
Source:
Type.cs

Retourne un objet Type qui représente un tableau du type actuel, avec le nombre spécifié de dimensions.

C#
public abstract Type MakeArrayType (int rank);
C#
public virtual Type MakeArrayType (int rank);

Paramètres

rank
Int32

Nombre de dimensions pour le tableau. Ce nombre doit être inférieur ou égal à 32.

Retours

Objet qui représente un tableau du type actuel, avec le nombre spécifié de dimensions.

Exceptions

rank n'est pas valide. Par exemple, 0 ou un nombre négatif.

La méthode appelée n’est pas prise en charge dans la classe de base.

Le type actuel est TypedReference.

- ou -

Le type actuel est un type ByRef. Autrement dit, IsByRef retourne true.

- ou -

rank est supérieur à 32.

Remarques

La MakeArrayType méthode permet de générer des types de tableaux dont les types d’éléments sont calculés au moment de l’exécution.

Note

Le Common Language Runtime fait une distinction entre les vecteurs (c’est-à-dire les tableaux unidimensionnels qui sont toujours de base zéro) et les tableaux multidimensionnels. Un vecteur, qui n’a toujours qu’une seule dimension, n’est pas identique à un tableau multidimensionnel qui n’a qu’une seule dimension. Vous ne pouvez pas utiliser cette surcharge de méthode pour créer un type de vecteur ; si rank a la valeur 1, cette surcharge de méthode retourne un type de tableau multidimensionnel qui a une dimension. Utilisez la surcharge de MakeArrayType() méthode pour créer des types de vecteurs.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0