Type.IsArrayImpl Type.IsArrayImpl Type.IsArrayImpl Type.IsArrayImpl Method

定义

在派生类中重写时,实现 IsArray 属性并确定 Type 是否为数组。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

返回

如果 true 是数组,则为 Type;否则为 falsetrue if the Type is an array; otherwise, false.

示例

下面的示例重写IsArrayImpl MyTypeDelegator类中的方法,检查变量是否为数组,并显示结果。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 );
        }
    }
}
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 'MyTypeDelegator

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

注解

Array类的实例必须返回false ,因为它是一个对象,而不是一个数组。An instance of the Array class must return false because it is an object, not an array.

适用于

另请参阅