FieldInfo.GetValue メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As FieldInfo Dim obj As Object Dim returnValue As Object returnValue = instance.GetValue(obj)
public abstract Object GetValue ( Object obj )
public abstract Object GetValue ( Object obj )
戻り値
このインスタンスがリフレクションするフィールドの値を保持しているオブジェクト。


フィールドが静的な場合、obj は無視されます。非静的フィールドの場合、obj は、そのフィールドを継承または宣言しているクラスのインスタンスであることが必要です。GetValue の戻り値の型はオブジェクトです。たとえば、フィールドがブール型のプリミティブ値を保持している場合、適切なブール値を持つオブジェクトのインスタンスが返されます。値を返す前に、GetValue は、必要なアクセス許可があるかどうかを確認します。
![]() |
---|
完全に信頼されたコードでは、アクセス制限は無視されます。コードが完全に信頼されていれば、リフレクションを使用して、プライベートなコンストラクタ、メソッド、フィールド、およびプロパティにアクセスし、それらを呼び出すことができます。 |

' 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 ); } }


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


_FieldInfo.GetValue メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As _FieldInfo Dim obj As Object Dim returnValue As Object returnValue = instance.GetValue(obj)
戻り値
このインスタンスがリフレクションするフィールドの値を保持しているオブジェクト。


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- _FieldInfo.GetValueのページへのリンク