Type.HasElementTypeImpl メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Type.HasElementTypeImpl メソッドの意味・解説 

Type.HasElementTypeImpl メソッド

派生クラスによってオーバーライドされた場合、HasElementType プロパティ実装し、現在の Type別の型を包含または参照しているかどうか、つまり現在の Type配列ポインタであるか、参照渡しかどうか判断します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Protected MustOverride Function
 HasElementTypeImpl As Boolean
protected abstract bool HasElementTypeImpl
 ()
protected:
virtual bool HasElementTypeImpl () abstract
protected abstract boolean HasElementTypeImpl ()

戻り値
Type配列ポインタであるか、参照渡しである場合trueそれ以外場合false

解説解説

たとえば、Type.GetType("Int32[]").HasElementTypeImpl は true返しますが、Type.GetType("Int32").HasElementTypeImpl は false返します。HasElementTypeImpl は、"Int32*" と "Int32&" のどちらに対してtrue返します

使用例使用例

HasElementTypeImpl メソッドオーバーライドした MyTypeDelegator クラス定義する例を次に示しますメインクラスは、HasElementType プロパティチェックして要素の型を表示します

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic
Public Class MyTypeDelegator
    Inherits TypeDelegator
    Public myElementType As String
 = Nothing
    Private myType As Type = Nothing
    Public Sub New(ByVal
 myType As Type)
        MyBase.New(myType)
        Me.myType = myType
    End Sub 'New
    ' Override Type.HasElementTypeImpl().
    Protected Overrides Function
 HasElementTypeImpl() As Boolean
        ' Determine whether the type is an array.
        If myType.IsArray Then
            myElementType = "array"
            Return True
        End If
        ' Determine whether the type is a reference.
        If myType.IsByRef Then
            myElementType = "reference"
            Return True
        End If
        ' Determine whether the type is a pointer.
        If myType.IsPointer Then
            myElementType = "pointer"
            Return True
        End If
        ' The type is not a reference, array, or pointer type.
        Return False
    End Function 'HasElementTypeImpl
End Class 'MyTypeDelegator
Public Class Type_HasElementTypeImpl
    Public Shared Sub Main()
        Try
            Dim myInt As Integer
 = 0
            Dim myArray(4) As Integer
            Dim myType As New
 MyTypeDelegator(myArray.GetType())
            Console.WriteLine(ControlChars.NewLine + "Determine
 whether a variable refers to an array or pointer or reference type."
 + ControlChars.NewLine)
            ' Determine whether myType is an array, pointer, reference
 type.  
            If myType.HasElementType Then
                Console.WriteLine("The type of myArray is {0}.",
 myType.myElementType.ToString())
            Else
                Console.WriteLine("myArray is not an array, pointer,
 or reference type.")
            End If
            myType = New MyTypeDelegator(myInt.GetType())
            ' Determine whether myType is an array, pointer, reference
 type. 
            If myType.HasElementType Then
                Console.WriteLine("The type of myInt is {0}.",
 myType.myElementType.ToString())
            Else
                Console.WriteLine("myInt is not an array, pointer,
 or reference type.")
            End If
        Catch e As Exception
            Console.WriteLine("Exception: {0}", e.Message.ToString())
        End Try
    End Sub 'Main
End Class 'Type_HasElementTypeImpl
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);
        }
    }
}
using namespace System;
using namespace System::Reflection;
public ref class MyTypeDelegator: public
 TypeDelegator
{
public:
   String^ myElementType;

private:
   Type^ myType;

public:
   MyTypeDelegator( Type^ myType )
      : TypeDelegator( myType )
   {
      this->myType = myType;
   }


protected:

   // Override Type::HasElementTypeImpl().
   virtual bool HasElementTypeImpl() override
   {
      
      // 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;
   }

};

int main()
{
   try
   {
      int myInt = 0;
      array<Int32>^myArray = gcnew array<Int32>(5);
      MyTypeDelegator^ myType = gcnew 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 = gcnew 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 );
   }

}

import System.*;
import System.Reflection.*;

public class MyTypeDelegator extends TypeDelegator
{
    public String myElementType = null;
    private Type myType = null;

    public MyTypeDelegator(Type myType)
    {
        super(myType);
        this.myType = myType;
    } //MyTypeDelegator

    // Override Type.HasElementTypeImpl().
    protected boolean HasElementTypeImpl()
    {
        // Determine whether the type is an array.
        if (myType.get_IsArray()) {
            myElementType = "array";
            return true;
        }
        // Determine whether the type is a reference.
        if (myType.get_IsByRef()) {
            myElementType = "reference";
            return true;
        }
        // Determine whether the type is a pointer.
        if (myType.get_IsPointer()) {
            myElementType = "pointer";
            return true;
        }
        // Return false if the type is not a reference, array, or pointer
 type.
        return false;
    } //HasElementTypeImpl
} //MyTypeDelegator

public class Type_HasElementTypeImpl
{
    public static void main(String[]
 args)
    {
        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.get_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(((System.Int32)myInt).GetType());
 
            // Determine whether myType is an array, pointer, reference
 type. 
            if (myType.get_HasElementType()) {
                Console.WriteLine("The type of myInt is {0}.", myType.
                    myElementType);
            }
            else {
                Console.WriteLine("myInt is not an array, pointer," 
                    + " or reference type.");
            }
        }
        catch (System.Exception e) {
            Console.WriteLine("Exception: {0}", e.get_Message());
        }
    } //main
} //Type_HasElementTypeImpl
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Type クラス
Type メンバ
System 名前空間
HasElementType
IsArray
IsPointer
IsByRef
GetElementType
GetType



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Type.HasElementTypeImpl メソッド」の関連用語

Type.HasElementTypeImpl メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Type.HasElementTypeImpl メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS