_Type.GetFieldとは? わかりやすく解説

Type.GetField メソッド (String, BindingFlags)

指定したバインディング制約使用して指定したフィールド検索します

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

Public MustOverride Function
 GetField ( _
    name As String, _
    bindingAttr As BindingFlags _
) As FieldInfo
Dim instance As Type
Dim name As String
Dim bindingAttr As BindingFlags
Dim returnValue As FieldInfo

returnValue = instance.GetField(name, bindingAttr)
public abstract FieldInfo GetField (
    string name,
    BindingFlags bindingAttr
)
public:
virtual FieldInfo^ GetField (
    String^ name, 
    BindingFlags bindingAttr
) abstract
public abstract FieldInfo GetField (
    String name, 
    BindingFlags bindingAttr
)
public abstract function GetField (
    name : String, 
    bindingAttr : BindingFlags
) : FieldInfo

パラメータ

name

取得するデータ フィールドの名前を格納している String

bindingAttr

検索実行方法指定する 1 つ上の BindingFlags から成るビット マスク

または

null 参照 (Visual Basic では Nothing) を返す 0。

戻り値
指定した要件一致するフィールド存在する場合は、そのフィールドを表す FieldInfo オブジェクトそれ以外場合null 参照 (Visual Basic では Nothing)。

例外例外
例外種類条件

ArgumentNullException

namenull 参照 (Visual Basic では Nothing) です。

解説解説

型に対すリフレクション時に Get メソッドによって返される基本クラスメンバ次の表に示します

  1. 名前と署名による隠ぺいでは、カスタム修飾子戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約含めて署名すべての部分判断対象となります。これはバイナリ比較です。

  2. リフレクション場合プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスget アクセサset アクセサ両方を持つプロパティがあり、派生クラスには get アクセサしかない場合派生クラスプロパティにより基本クラスプロパティ隠ぺいされ、基本クラスset アクセサにはアクセスできません。

  3. カスタム属性は、共通型システム一部ではありません。

次の BindingFlags フィルタ フラグは、検索対象含めフィールド定義するために使用できます

次の BindingFlags 修飾フラグは、検索方法変更するために使用できます

詳細については、「System.Reflection.BindingFlags」を参照してください

要求された型がパブリックではなく呼び出し元に現在のアセンブリ外の非パブリック オブジェクトリフレクションするための ReflectionPermission がない場合、このメソッドnull 参照 (Visual Basic では Nothing) を返します

現在の Type構築ジェネリック型表している場合、このメソッドは、型パラメータ適切な型の引数置き換えて FieldInfo返します

現在の Typeジェネリック型またはジェネリック メソッドの定義の型パラメータ表している場合、このメソッドクラス制約のフィールド検索します

使用例使用例

指定したクラスType オブジェクト取得し指定したバインディング フラグ一致するフィールドFieldInfo オブジェクト取得して、そのフィールドの値を表示する例を次に示します

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class MyFieldClassA
    Public Field As String
 = "A Field"
End Class 'MyFieldClassA

Public Class MyFieldClassB
    Private myField As String
 = "B Field"

    Public Property Field() As
 String
        Get
            Return myField
        End Get
        Set(ByVal Value As
 String)
            If myField <> value Then
                myField = value
            End If
        End Set
    End Property
End Class 'MyFieldClassB


Public Class MyFieldInfoClass

    Public Shared Sub Main()
        Dim myFieldObjectB As New
 MyFieldClassB()
        Dim myFieldObjectA As New
 MyFieldClassA()

        Dim myTypeA As Type = GetType(MyFieldClassA)
        Dim myFieldInfo As FieldInfo = myTypeA.GetField("Field")

        Dim myTypeB As Type = GetType(MyFieldClassB)
        Dim myFieldInfo1 As FieldInfo = myTypeB.GetField("myField",
 _
            BindingFlags.NonPublic Or BindingFlags.Instance)

        Console.WriteLine("The value of the public
 field is: '{0}'", _
            myFieldInfo.GetValue(myFieldObjectA))
        Console.WriteLine("The value of the private
 field is: '{0}'", _
            myFieldInfo1.GetValue(myFieldObjectB))
    End Sub 'Main

End Class 'MyFieldInfoClass

using System;
using System.Reflection;

public class MyFieldClassA
{
    public string Field = "A Field";
}

public class MyFieldClassB
{
    private string field = "B Field";
    public string Field 
    {
        get
        {
            return field;
        }
        set
        {
            if (field!=value)
            {
                field=value;
            }
        }
    }
}

public class MyFieldInfoClass
{
    public static void Main()
    {
        MyFieldClassB myFieldObjectB = new MyFieldClassB();
        MyFieldClassA myFieldObjectA = new MyFieldClassA();

        Type myTypeA = typeof(MyFieldClassA);
        FieldInfo myFieldInfo = myTypeA.GetField("Field");

        Type myTypeB = typeof(MyFieldClassB);
        FieldInfo myFieldInfo1 = myTypeB.GetField("field", 
            BindingFlags.NonPublic | BindingFlags.Instance);

        Console.WriteLine("The value of the public field
 is: '{0}'", 
            myFieldInfo.GetValue(myFieldObjectA));
        Console.WriteLine("The value of the private field
 is: '{0}'", 
            myFieldInfo1.GetValue(myFieldObjectB));
    }
}
using namespace System;
using namespace System::Reflection;
using namespace System::Security;
public ref class MyFieldClassA
{
public:
   String^ field;
   MyFieldClassA()
   {
      field = "A Field";
   }


   property String^ Field 
   {
      String^ get()
      {
         return field;
      }

      void set( String^ value )
      {
         if ( field != value )
         {
            field = value;
         }
      }

   }

};

public ref class MyFieldClassB
{
public:
   String^ field;
   MyFieldClassB()
   {
      field = "B Field";
   }


   property String^ Field 
   {
      String^ get()
      {
         return field;
      }

      void set( String^ value )
      {
         if ( field != value )
         {
            field = value;
         }
      }

   }

};

int main()
{
   try
   {
      MyFieldClassB^ myFieldObjectB = gcnew MyFieldClassB;
      MyFieldClassA^ myFieldObjectA = gcnew MyFieldClassA;
      Type^ myTypeA = Type::GetType( "MyFieldClassA" );
      FieldInfo^ myFieldInfo = myTypeA->GetField( "field" );
      Type^ myTypeB = Type::GetType( "MyFieldClassB" );
      FieldInfo^ myFieldInfo1 = myTypeB->GetField( "field", static_cast<BindingFlags>(BindingFlags::Public
 | BindingFlags::Instance) );
      Console::WriteLine( "The value of the field is : {0} ", myFieldInfo->GetValue(
 myFieldObjectA ) );
      Console::WriteLine( "The value of the field is : {0} ", myFieldInfo1->GetValue(
 myFieldObjectB ) );
   }
   catch ( SecurityException^ e ) 
   {
      Console::WriteLine( "Exception Raised!" );
      Console::WriteLine( "Message : {0}", e->Message );
   }
   catch ( ArgumentNullException^ e ) 
   {
      Console::WriteLine( "Exception Raised!" );
      Console::WriteLine( "Message : {0}", e->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception Raised!" );
      Console::WriteLine( "Message : {0}", e->Message );
   }

}

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

public class MyFieldClassA
{
    public String field = "A Field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field

    /** @property 
     */
    public void set_Field(String value)
    {
        if (!(field.Equals(value))) {
            field = value;
        }
    } //set_Field
} //MyFieldClassA

public class MyFieldClassB
{
    public String field = "B Field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field

    /** @property 
     */
    public void set_Field(String value)
    {
        if (!(field.Equals(value))) {
            field = value;
        }
    } //set_Field
} //MyFieldClassB

public class MyFieldInfoClass
{
    public static void main(String[]
 args)
    {
        try {
            MyFieldClassB myFieldObjectB = new MyFieldClassB();
            MyFieldClassA myFieldObjectA = new MyFieldClassA();
            Type myTypeA = Type.GetType("MyFieldClassA");
            FieldInfo myFieldInfo = myTypeA.GetField("field");
            Type myTypeB = Type.GetType("MyFieldClassB");
            FieldInfo myFieldInfo1 = myTypeB.GetField("field", 
                BindingFlags.Public | BindingFlags.Instance);
            Console.WriteLine("The value of the field is : {0} ",
                myFieldInfo.GetValue(myFieldObjectA));
            Console.WriteLine("The value of the field is : {0} ",
                myFieldInfo1.GetValue(myFieldObjectB));
        }
        catch (SecurityException e) {
            Console.WriteLine("Exception Raised!");
            Console.WriteLine("Message :" + e.get_Message());
        }
        catch (ArgumentNullException e) {
            Console.WriteLine("Exception Raised!");
            Console.WriteLine("Message :" + e.get_Message());
        }
        catch (System.Exception e) {
            Console.WriteLine("Exception Raised!");
            Console.WriteLine("Message :" + e.get_Message());
        }
    } //main
} //MyFieldInfoClass
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Type クラス
Type メンバ
System 名前空間
FieldInfo
String クラス
BindingFlags
DefaultBinder
ReflectionPermission
GetFields

Type.GetField メソッド (String)

指定した名前のパブリック フィールド検索します

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

Public Function GetField ( _
    name As String _
) As FieldInfo
Dim instance As Type
Dim name As String
Dim returnValue As FieldInfo

returnValue = instance.GetField(name)
public FieldInfo GetField (
    string name
)
public:
virtual FieldInfo^ GetField (
    String^ name
) sealed
public final FieldInfo GetField (
    String name
)
public final function GetField (
    name : String
) : FieldInfo

パラメータ

name

取得するデータ フィールドの名前を格納している String

戻り値
指定した名前のパブリック フィールド存在する場合は、そのフィールドを表す FieldInfo オブジェクトそれ以外場合null 参照 (Visual Basic では Nothing)。

例外例外
例外種類条件

ArgumentNullException

namenull 参照 (Visual Basic では Nothing) です。

解説解説
使用例使用例

指定したクラスType オブジェクト取得しフィールドFieldInfo オブジェクト取得して、そのフィールドの値を表示する例を次に示します

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class MyFieldClassA
    Public Field As String
 = "A Field"
End Class 'MyFieldClassA

Public Class MyFieldClassB
    Private myField As String
 = "B Field"

    Public Property Field() As
 String
        Get
            Return myField
        End Get
        Set(ByVal Value As
 String)
            If myField <> value Then
                myField = value
            End If
        End Set
    End Property
End Class 'MyFieldClassB


Public Class MyFieldInfoClass

    Public Shared Sub Main()
        Dim myFieldObjectB As New
 MyFieldClassB()
        Dim myFieldObjectA As New
 MyFieldClassA()

        Dim myTypeA As Type = GetType(MyFieldClassA)
        Dim myFieldInfo As FieldInfo = myTypeA.GetField("Field")

        Dim myTypeB As Type = GetType(MyFieldClassB)
        Dim myFieldInfo1 As FieldInfo = myTypeB.GetField("myField",
 _
            BindingFlags.NonPublic Or BindingFlags.Instance)

        Console.WriteLine("The value of the public
 field is: '{0}'", _
            myFieldInfo.GetValue(myFieldObjectA))
        Console.WriteLine("The value of the private
 field is: '{0}'", _
            myFieldInfo1.GetValue(myFieldObjectB))
    End Sub 'Main

End Class 'MyFieldInfoClass

using System;
using System.Reflection;

public class MyFieldClassA
{
    public string Field = "A Field";
}

public class MyFieldClassB
{
    private string field = "B Field";
    public string Field 
    {
        get
        {
            return field;
        }
        set
        {
            if (field!=value)
            {
                field=value;
            }
        }
    }
}

public class MyFieldInfoClass
{
    public static void Main()
    {
        MyFieldClassB myFieldObjectB = new MyFieldClassB();
        MyFieldClassA myFieldObjectA = new MyFieldClassA();

        Type myTypeA = typeof(MyFieldClassA);
        FieldInfo myFieldInfo = myTypeA.GetField("Field");

        Type myTypeB = typeof(MyFieldClassB);
        FieldInfo myFieldInfo1 = myTypeB.GetField("field", 
            BindingFlags.NonPublic | BindingFlags.Instance);

        Console.WriteLine("The value of the public field
 is: '{0}'", 
            myFieldInfo.GetValue(myFieldObjectA));
        Console.WriteLine("The value of the private field
 is: '{0}'", 
            myFieldInfo1.GetValue(myFieldObjectB));
    }
}
using namespace System;
using namespace System::Reflection;
using namespace System::Security;
public ref class MyFieldClassA
{
public:
   String^ field;
   MyFieldClassA()
   {
      field = "A Field";
   }


   property String^ Field 
   {
      String^ get()
      {
         return field;
      }

      void set( String^ value )
      {
         if ( field != value )
         {
            field = value;
         }
      }

   }

};

public ref class MyFieldClassB
{
public:
   String^ field;
   MyFieldClassB()
   {
      field = "B Field";
   }


   property String^ Field 
   {
      String^ get()
      {
         return field;
      }

      void set( String^ value )
      {
         if ( field != value )
         {
            field = value;
         }
      }

   }

};

int main()
{
   try
   {
      MyFieldClassB^ myFieldObjectB = gcnew MyFieldClassB;
      MyFieldClassA^ myFieldObjectA = gcnew MyFieldClassA;
      Type^ myTypeA = Type::GetType( "MyFieldClassA" );
      FieldInfo^ myFieldInfo = myTypeA->GetField( "field" );
      Type^ myTypeB = Type::GetType( "MyFieldClassB" );
      FieldInfo^ myFieldInfo1 = myTypeB->GetField( "field", static_cast<BindingFlags>(BindingFlags::Public
 | BindingFlags::Instance) );
      Console::WriteLine( "The value of the field is : {0} ", myFieldInfo->GetValue(
 myFieldObjectA ) );
      Console::WriteLine( "The value of the field is : {0} ", myFieldInfo1->GetValue(
 myFieldObjectB ) );
   }
   catch ( SecurityException^ e ) 
   {
      Console::WriteLine( "Exception Raised!" );
      Console::WriteLine( "Message : {0}", e->Message );
   }
   catch ( ArgumentNullException^ e ) 
   {
      Console::WriteLine( "Exception Raised!" );
      Console::WriteLine( "Message : {0}", e->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception Raised!" );
      Console::WriteLine( "Message : {0}", e->Message );
   }

}

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

public class MyFieldClassA
{
    public String field = "A Field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field

    /** @property 
     */
    public void set_Field(String value)
    {
        if (!(field.Equals(value))) {
            field = value;
        }
    } //set_Field
} //MyFieldClassA

public class MyFieldClassB
{
    public String field = "B Field";

    /** @property 
     */
    public String get_Field()
    {
        return field;
    } //get_Field

    /** @property 
     */
    public void set_Field(String value)
    {
        if (!(field.Equals(value))) {
            field = value;
        }
    } //set_Field
} //MyFieldClassB

public class MyFieldInfoClass
{
    public static void main(String[]
 args)
    {
        try {
            MyFieldClassB myFieldObjectB = new MyFieldClassB();
            MyFieldClassA myFieldObjectA = new MyFieldClassA();
            Type myTypeA = Type.GetType("MyFieldClassA");
            FieldInfo myFieldInfo = myTypeA.GetField("field");
            Type myTypeB = Type.GetType("MyFieldClassB");
            FieldInfo myFieldInfo1 = myTypeB.GetField("field", 
                BindingFlags.Public | BindingFlags.Instance);
            Console.WriteLine("The value of the field is : {0} ",
                myFieldInfo.GetValue(myFieldObjectA));
            Console.WriteLine("The value of the field is : {0} ",
                myFieldInfo1.GetValue(myFieldObjectB));
        }
        catch (SecurityException e) {
            Console.WriteLine("Exception Raised!");
            Console.WriteLine("Message :" + e.get_Message());
        }
        catch (ArgumentNullException e) {
            Console.WriteLine("Exception Raised!");
            Console.WriteLine("Message :" + e.get_Message());
        }
        catch (System.Exception e) {
            Console.WriteLine("Exception Raised!");
            Console.WriteLine("Message :" + e.get_Message());
        }
    } //main
} //MyFieldInfoClass
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Type クラス
Type メンバ
System 名前空間
FieldInfo
String クラス
DefaultBinder
ReflectionPermission
GetFields

Type.GetField メソッド


_Type.GetField メソッド




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

辞書ショートカット

すべての辞書の索引

「_Type.GetField」の関連用語

_Type.GetFieldのお隣キーワード
検索ランキング

   

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



_Type.GetFieldのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS