Upraviť

Zdieľať cez


Type.IsArrayImpl Method

Definition

When overridden in a derived class, implements the IsArray property and determines whether the Type is an array.

protected:
 abstract bool IsArrayImpl();
protected abstract bool IsArrayImpl ();
abstract member IsArrayImpl : unit -> bool
Protected MustOverride Function IsArrayImpl () As Boolean

Returns

true if the Type is an array; otherwise, false.

Examples

The following example overrides the IsArrayImpl method in the MyTypeDelegator class, checks if a variable is an array, and displays the result.

using namespace System;
using namespace System::Reflection;
public ref class MyTypeDelegator: public TypeDelegator
{
public:
   String^ myElementType;
   Type^ myType;
   MyTypeDelegator( Type^ myType )
      : TypeDelegator( myType )
   {
      this->myType = myType;
   }


protected:

   // Override IsArrayImpl().
   virtual bool IsArrayImpl() override
   {
      
      // Determine whether the type is an array.
      if ( myType->IsArray )
      {
         myElementType = "array";
         return true;
      }

      
      // Return false if the type is not an array.
      return false;
   }

};

int main()
{
   try
   {
      int myInt = 0;
      
      // Create an instance of an array element.
      array<Int32>^myArray = gcnew array<Int32>(5);
      MyTypeDelegator^ myType = gcnew MyTypeDelegator( myArray->GetType() );
      Console::WriteLine( "\nDetermine whether the variable is an array.\n" );
      
      // Determine whether myType is an array type.
      if ( myType->IsArray )
            Console::WriteLine( "The type of myArray is {0}.", myType->myElementType );
      else
            Console::WriteLine( "myArray is not an array." );
      myType = gcnew MyTypeDelegator( myInt.GetType() );
      
      // Determine whether myType is an array type.
      if ( myType->IsArray )
            Console::WriteLine( "The type of myInt is {0}.", myType->myElementType );
      else
            Console::WriteLine( "myInt is not an array." );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception: {0}", e->Message );
   }

}
using System;
using System.Reflection;
public class MyTypeDelegator : TypeDelegator
{
    public string myElementType = null;
    public Type myType;
    public MyTypeDelegator(Type myType) : base(myType)
    {
        this.myType = myType;
    }
    // Override IsArrayImpl().
    protected override bool IsArrayImpl()
    {
        // Determine whether the type is an array.
        if(myType.IsArray)
        {
            myElementType = "array";
            return true;
        }
        // Return false if the type is not an array.
        return false;
    }
}
public class Type_IsArrayImpl
{
    public static void Main()
    {
        try
        {
            int myInt = 0 ;
            // Create an instance of an array element.
            int[] myArray = new int[5];
            MyTypeDelegator myType = new MyTypeDelegator(myArray.GetType());
            Console.WriteLine("\nDetermine whether the variable is an array.\n");
            // Determine whether myType is an array type.
            if( myType.IsArray)
                Console.WriteLine("The type of myArray is {0}.", myType.myElementType);
            else
                Console.WriteLine("myArray is not an array.");
            myType = new MyTypeDelegator(myInt.GetType());

            // Determine whether myType is an array type.
            if( myType.IsArray)
                Console.WriteLine("The type of myInt is {0}.", myType.myElementType);
            else
                Console.WriteLine("myInt is not an array.");
        }
        catch( Exception e )
        {
            Console.WriteLine("Exception: {0}", e.Message );
        }
    }
}
open System.Reflection

type MyTypeDelegator(myType) =
    inherit TypeDelegator(myType)

    [<DefaultValue>]    
    val mutable public myElementType : string

    // Override IsArrayImpl().
    override this.IsArrayImpl() =
        // Determine whether the type is an array.
        if myType.IsArray then
            this.myElementType <- "array"
            true
        // Return false if the type is not an array.
        else false

try
    let myInt = 0 
    // Create an instance of an array element.
    let myArray = Array.zeroCreate<int> 5
    let myType = MyTypeDelegator(myArray.GetType())
    printfn "\nDetermine whether the variable is an array.\n"
    // Determine whether myType is an array type.
    if myType.IsArray then
        printfn $"The type of myArray is {myType.myElementType}."
    else
        printfn "myArray is not an array."
    let myType = MyTypeDelegator(myInt.GetType())

    // Determine whether myType is an array type.
    if myType.IsArray then
        printfn $"The type of myInt is {myType.myElementType}."
    else
        printfn "myInt is not an array."
with e ->
    printfn $"Exception: {e.Message}"
Imports System.Reflection

Public Class MyTypeDelegator
    Inherits TypeDelegator
    Public myElementType As String = Nothing
    Public myType As Type
    Public Sub New(ByVal myType As Type)
        MyBase.New(myType)
        Me.myType = myType
    End Sub
    ' Override IsArrayImpl().
    Protected Overrides Function IsArrayImpl() As Boolean
        ' Determine whether the type is an array.
        If myType.IsArray Then
            myElementType = "array"
            Return True
        End If
        ' Return false if the type is not an array.
        Return False
    End Function 'IsArrayImpl
End Class

Public Class Type_IsArrayImpl
    Public Shared Sub Main()
        Try
            Dim myInt As Integer = 0
            ' Create an instance of an array element.
            Dim myArray(4) As Integer
            Dim myType As New MyTypeDelegator(myArray.GetType())
            Console.WriteLine(ControlChars.NewLine + "Determine whether the variable is an array." + ControlChars.NewLine)
            ' Determine whether 'myType' is an array type.  
            If myType.IsArray Then
                Console.WriteLine("The type of myArray is {0}.", myType.myElementType)
            Else
                Console.WriteLine("myArray is not an array.")
            End If
            myType = New MyTypeDelegator(myInt.GetType())
            ' Determine whether myType is an array type. 
            If myType.IsArray Then
                Console.WriteLine("The type of myInt is {0}.", myType.myElementType)
            Else
                Console.WriteLine("myInt is not an array.")
            End If
        Catch e As Exception
            Console.WriteLine("Exception: {0}", e.Message.ToString())
        End Try
    End Sub
End Class

Remarks

An instance of the Array class must return false because it's an object, not an array.

Applies to

See also