Edit

Share via


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 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