次の方法で共有


FieldInfo.MemberType プロパティ

FieldInfo オブジェクトがリフレクションするプロパティの type を取得します。取得した値は、このメンバがフィールドであることを示します。

Overrides Public ReadOnly Property MemberType As MemberTypes
[C#]
public override MemberTypes MemberType {get;}
[C++]
public: __property MemberTypes get_MemberType();
[JScript]
public override function get MemberType() : MemberTypes;

プロパティ値

MemberTypes.Field オブジェクト。

解説

このプロパティは、このフィールドを汎用メンバとしてテストするときに使用します。

使用例

指定したメンバがフィールドかどうかを調べ、その結果を表示する例を次に示します。

 
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

' Make a field.
Public Class Myfield
    Private m_field As String = "a private field"

    Public ReadOnly Property Field() As String
        Get
            Return m_field
        End Get
    End Property
End Class

Public Class Myfieldinfo

    Public Shared Sub Main()
        Console.WriteLine()
        Console.WriteLine(ControlChars.Cr & "Reflection.FieldInfo")
        Console.WriteLine()
        Dim Myfield As New Myfield()

        ' Get the Type and FieldInfo.
        Dim MyType As Type = Type.GetType("Myfield")
        Dim Myfieldinfo As FieldInfo = _
           MyType.GetField("m_field", BindingFlags.NonPublic Or BindingFlags.Instance)

        ' Get and display the MemberType.
        Console.Write(ControlChars.Cr & "{0}.", MyType.FullName)
        Console.Write("{0} - ", Myfieldinfo.Name)
        Console.Write("{0};", Myfield.Field)
        Dim Mymembertypes As MemberTypes = Myfieldinfo.MemberType
        Console.Write("MemberType is a {0}.", Mymembertypes.ToString())
    End Sub
End Class

[C#] 
using System;
using System.Reflection;
 
// Make a field.
public class Myfield
{
    private string field = "a private field";
    public string Field
    {
        get{return field;}
    }
}
  
public class Myfieldinfo
{
    public static int Main()
    {
        Console.WriteLine ("\nReflection.FieldInfo");
        Myfield Myfield = new Myfield();
  
        // Get the Type and FieldInfo.
        Type MyType = Type.GetType("Myfield");
        FieldInfo Myfieldinfo = MyType.GetField("field", BindingFlags.NonPublic|BindingFlags.Instance);
  
        // Get and display the MemberType.
        Console.Write ("\n{0}.", MyType.FullName);
        Console.Write ("{0} - ", Myfieldinfo.Name);
        Console.Write ("{0};", Myfield.Field);
        MemberTypes Mymembertypes = Myfieldinfo.MemberType;
        Console.Write("MemberType is a {0}.", Mymembertypes.ToString());
        return 0;
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Reflection;

// Make a field.
public __gc class Myfield
{
private:
    String* field;
public:
    Myfield() : field(S"a private field") {}
    __property String* get_Field() {
        return field;
    }
};

int main()
{
    Console::WriteLine (S"\nReflection.FieldInfo");
    Myfield* myfield = new Myfield();

    // Get the Type and FieldInfo.
    Type* MyType = Type::GetType(S"Myfield");
    FieldInfo* Myfieldinfo = MyType->GetField(S"field",
        static_cast<BindingFlags>(BindingFlags::NonPublic|BindingFlags::Instance));

    // Get and display the MemberType.
    Console::Write (S"\n{0}.", MyType->FullName);
    Console::Write (S"{0} - ", Myfieldinfo->Name);
    Console::Write (S"{0};", myfield->Field);
    MemberTypes Mymembertypes = Myfieldinfo->MemberType;
    Console::Write(S"MemberType is a {0}.", __box(Mymembertypes));
    return 0;
}

[JScript] 
import System;
import System.Reflection;

//Make a field 
public class Myfield
{
   private var field : String = "a private field";
   public function get Field() : String {
       return field;
   }
}
 
public class Myfieldinfo
{
   public static function Main() : void
   {
      Console.WriteLine ("\nReflection.FieldInfo");
      var myfield : Myfield = new Myfield();
 
      //Get the Type and FieldInfo
      var MyType : Type = Type.GetType("Myfield");
      var Myfieldinfo : FieldInfo = MyType.GetField("field", BindingFlags.NonPublic|BindingFlags.Instance);
 
      //Get and Display the MemberType
      Console.Write ("\n{0}.", MyType.FullName);
      Console.Write ("{0} - ", Myfieldinfo.Name);
      Console.Write ("{0};", myfield.Field);
 
      var Mymembertypes : MemberTypes = Myfieldinfo.MemberType;
      Console.Write(" MemberType is a {0}", Mymembertypes.ToString());
   }
}
Myfieldinfo.Main();

このコードによって、次の出力が生成されます。

Reflection.FieldInfo

Myfield.field - a private field; MemberType is a Field

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

FieldInfo クラス | FieldInfo メンバ | System.Reflection 名前空間 | FieldInfo | Type