_FieldInfo.GetValueとは? わかりやすく解説

FieldInfo.GetValue メソッド

派生クラスによってオーバーライドされた場合指定したオブジェクトサポートされているフィールドの値を返します

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

例外例外
例外種類条件

TargetException

フィールドが非静的objnull 参照 (Visual Basic では Nothing) です。

NotSupportedException

フィールドリテラルマークされていますが、フィールド許可されリテラル型を持っていません。

FieldAccessException

呼び出し元に、このフィールド対すアクセス許可がありません。

ArgumentException

メソッドが、objクラス宣言継承もされていません。

解説解説
使用例使用例
' The following example demonstrates getting
' a field value directly, without having an object,
' by defining it as a static field.
Imports System
Imports System.Reflection

Class [MyClass]
    Public Shared val As
 [String] = "test"
    Public Shared Sub Main()
        Dim myf As FieldInfo = GetType([MyClass]).GetField("val")
        Console.WriteLine(myf.GetValue(Nothing))
        val = "hi"
        Console.WriteLine(myf.GetValue(Nothing))
    End Sub 'Main
End Class '[MyClass]
// The following example demonstrates getting
// a field value directly, without having an object,
// by defining it as a static field.

using System;
using System.Reflection;

class MyClass
{
    public static String val = "test";
    public static void Main()
    {
        FieldInfo myf = typeof(MyClass).GetField("val");
        Console.WriteLine(myf.GetValue(null));
        val = "hi";
        Console.WriteLine(myf.GetValue(null));
    }
}
// The following example demonstrates getting
// a field value directly, without having an object,
// by defining it as a static field.
using namespace System;
using namespace System::Reflection;

ref class MyClass
{
public:
   static String^ val = "test";
};

int main()
{
   FieldInfo^ myf = MyClass::typeid->GetField( "val" );
   Console::WriteLine( myf->GetValue( nullptr ) );
   MyClass::val = "hi";
   Console::WriteLine( myf->GetValue( nullptr ) );
}
// The following example demonstrates getting
// a field value directly, without having an object,
// by defining it as a static field.
import System.*;
import System.Reflection.*;

class MyClass
{
    public static String val = "test";

    public static void main(String[]
 args)
    {
        FieldInfo myf = MyClass.class.ToType().GetField("val");
        Console.WriteLine(myf.GetValue(null));
        val = "hi";
        Console.WriteLine(myf.GetValue(null));
    } //main
} //MyClass

MyClass のフィールド取得し、各フィールドの値を表示する例を次に示します

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class MyClass1
    Public myFieldA As String
    Public myFieldB As String

    Public Sub New()
        myFieldA = "A public field"
        myFieldB = "Another public field"
    End Sub 'New
End Class 'MyClass1

Public Class FieldInfo_GetValue

    Public Shared Sub Main()
        Dim myInstance As New
 MyClass1()
        ' Get the type of MyClass1.
        Dim myType As Type = GetType(MyClass1)
        Try
            ' Get the FieldInfo of MyClass1.
            Dim myFields As FieldInfo() = myType.GetFields((BindingFlags.Public
 Or BindingFlags.Instance))
            ' Display the values of the fields.
            Console.WriteLine(ControlChars.NewLine & "Displaying
 the values of the fields of {0}." & ControlChars.NewLine, myType.ToString())
            Dim i As Integer
            For i = 0 To myFields.Length -
 1
                Console.WriteLine("The value of the field {0}
 is: {1}", myFields(i).Name, myFields(i).GetValue(myInstance))
            Next i
        Catch e As FieldAccessException
            Console.WriteLine("FieldAccessException : {0}",
 e.Message.ToString())
        Catch e As TargetException
            Console.WriteLine("TargetException : {0}",
 e.Message.ToString())
        Catch e As ExecutionEngineException
            Console.WriteLine("ExecutionEngineException : {0}",
 e.Message.ToString())
        Catch e As MemberAccessException
            Console.WriteLine("MemberAccessException : {0}",
 e.Message.ToString())
        Catch e As Exception
            Console.WriteLine("Exception : {0}", e.Message.ToString())
        End Try
    End Sub 'Main
End Class 'FieldInfo_GetValue
using System;
using System.Reflection;

public class MyClass
{
    public string myFieldA;
    public string myFieldB; 
    public MyClass()
    {
        myFieldA = "A public field";
        myFieldB = "Another public field";
    }
}

public class FieldInfo_GetValue
{
    public static void Main()
    {
        MyClass myInstance = new MyClass();
        // Get the type of MyClass.
        Type myType = typeof(MyClass);
        try
        {
            // Get the FieldInfo of MyClass.
            FieldInfo[] myFields = myType.GetFields(BindingFlags.Public 
                | BindingFlags.Instance);
            // Display the values of the fields.
            Console.WriteLine("\nDisplaying the values of the fields of {0}.\n"
,
                myType);
            for(int i = 0; i < myFields.Length;
 i++)
            {
                Console.WriteLine("The value of {0} is: {1}",
                    myFields[i].Name, myFields[i].GetValue(myInstance));
            }
        }  
        catch(FieldAccessException e)
        {
            Console.WriteLine("FieldAccessException : {0}", e.Message);
        }
        catch(TargetException e)
        {
            Console.WriteLine("TargetException : {0}", e.Message);
        }
        catch(ExecutionEngineException e)
        {
            Console.WriteLine("ExecutionEngineException : {0}", e.Message);
        }
        catch(MemberAccessException e)
        {
            Console.WriteLine("MemberAccessException : {0}", e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception : {0}", e.Message);
        }
    }
}
using namespace System;
using namespace System::Reflection;

public ref class MyClass
{
public:
   String^ myFieldA;
   String^ myFieldB;
   MyClass()
   {
      myFieldA = "A public field";
      myFieldB = "Another public field";
   }
};

int main()
{
   MyClass^ myInstance = gcnew MyClass;
   
   // Get the type of MyClass.
   Type^ myType = MyClass::typeid;
   try
   {
      // Get the FieldInfo of MyClass.
      array<FieldInfo^>^myFields = myType->GetFields( static_cast<BindingFlags>(BindingFlags::Public
 | BindingFlags::Instance) );

      // Display the values of the fields.
      Console::WriteLine( "\nDisplaying the values of the fields of {0}.\n",
 myType );
      for ( int i = 0; i < myFields->Length;
 i++ )
      {
         Console::WriteLine( "The value of {0} is: {1}", myFields[ i ]->Name,
 myFields[ i ]->GetValue( myInstance ) );

      }
   }
   catch ( FieldAccessException^ e ) 
   {
      Console::WriteLine( "FieldAccessException : {0}", e->Message );
   }
   catch ( TargetException^ e ) 
   {
      Console::WriteLine( "TargetException : {0}", e->Message );
   }
   catch ( ExecutionEngineException^ e ) 
   {
      Console::WriteLine( "ExecutionEngineException : {0}", e->Message
 );
   }
   catch ( MemberAccessException^ e ) 
   {
      Console::WriteLine( "MemberAccessException : {0}", e->Message
 );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception : {0}", e->Message );
   }
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

_FieldInfo.GetValue メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

COM オブジェクトに、GetValue メソッドへのバージョン依存しないアクセス用意されています。

このメソッドは、CLS準拠していません。  

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

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
_FieldInfo インターフェイス
_FieldInfo メンバ
System.Runtime.InteropServices 名前空間



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

辞書ショートカット

すべての辞書の索引

「_FieldInfo.GetValue」の関連用語

_FieldInfo.GetValueのお隣キーワード
検索ランキング

   

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



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

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

©2024 GRAS Group, Inc.RSS