HasElementTypeImpl Méthode
TOC
Réduire la table des matières
Développer la table des matières
Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Type.HasElementTypeImpl, méthode ()

 

En cas de substitution dans une classe dérivée, implémente la propriété HasElementType et détermine si le Type actuel englobe ou se réfère à un autre type ; c'est-à-dire si le Type actuel est un tableau ou un pointeur ou encore s'il est passé par référence.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

protected abstract bool HasElementTypeImpl()

Valeur de retour

Type: System.Boolean

true si Type est un tableau ou un pointeur ou encore s'il est passé par référence ; sinon, false.

For example, Type.GetType("Int32[]").HasElementTypeImpl returns true, but Type.GetType("Int32").HasElementTypeImpl returns false. HasElementTypeImpl also returns true for "Int32*" and "Int32&".

The following example defines the class MyTypeDelegator, which overrides the HasElementTypeImpl method. The main class checks for the HasElementType property and displays the element type.

using System;
using System.Reflection;
public class MyTypeDelegator : TypeDelegator
{
    public string myElementType = null;
    private Type myType = null ; 
    public MyTypeDelegator(Type myType) : base(myType)
    {
        this.myType = myType;
    }
    // Override Type.HasElementTypeImpl().
    protected override bool HasElementTypeImpl()
    {
        // Determine whether the type is an array.
        if(myType.IsArray)
        {
            myElementType = "array";
            return true;
        }
        // Determine whether the type is a reference.
        if(myType.IsByRef)
        {
            myElementType = "reference";
            return true;
        }
        // Determine whether the type is a pointer.
        if(myType.IsPointer)
        { 
            myElementType = "pointer";
            return true;
        }
        // Return false if the type is not a reference, array, or pointer type.
        return false;
    }  
}
public class Type_HasElementTypeImpl
{
    public static void Main()
    {
        try
        {
            int myInt = 0 ; 
            int[] myArray = new int[5];
            MyTypeDelegator myType = new MyTypeDelegator(myArray.GetType());
            // Determine whether myType is an array, pointer, reference type.  
            Console.WriteLine("\nDetermine whether a variable is an array, pointer, or reference type.\n");
            if( myType.HasElementType)
                Console.WriteLine("The type of myArray is {0}.", myType.myElementType);
            else
                Console.WriteLine("myArray is not an array, pointer, or reference type.");
            myType = new MyTypeDelegator(myInt.GetType());
            // Determine whether myType is an array, pointer, reference type. 
            if( myType.HasElementType)
                Console.WriteLine("The type of myInt is {0}.", myType.myElementType);
            else
                Console.WriteLine("myInt is not an array, pointer, or reference type.");
        }
        catch( Exception e )
        {
            Console.WriteLine("Exception: {0}", e.Message);
        }
    }
}

.NET Framework
Disponible depuis 1.1
Portable Class Library
Pris en charge dans : portable .NET platforms
Silverlight
Disponible depuis 2.0
Windows Phone Silverlight
Disponible depuis 7.0
Retour au début
Afficher:
© 2016 Microsoft