FieldInfo.IsStatic プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)


フィールドが静的な場合は、フィールドの 1 つのコピーが型のすべてのインスタンスで共有されます。
IsStatic プロパティは、FieldAttributes.Static 属性が設定されたときに設定されます。
IsStatic プロパティを取得するには、最初に Type クラスを取得します。そして、その Type から FieldInfo を取得します。最後に、FieldInfo から IsStatic プロパティを取得します。非パブリック フィールドにアクセスするには、GetField メソッドで BindingFlags を NonPublic に設定し、アクセシビリティを Instance または Static に設定します。

指定したフィールドが静的かどうかを調べ、その結果を表示する例を次に示します。
Imports System Imports System.Reflection Imports Microsoft.VisualBasic ' Make two fields. Public Class Myfielda Private m_field As String = "A private field" Public Property Field() As String Get Return m_field End Get Set(ByVal Value As String) If m_field <> value Then m_field = value End If End Set End Property End Class Public Class Myfieldb Private Shared m_field As String = "B private static field" Public Property Field() As String Get Return m_field End Get Set(ByVal Value As String) If m_field <> value Then m_field = value End If End Set End Property End Class Public Class Myfieldinfo Public Shared Sub Main() Console.WriteLine() Console.WriteLine("Reflection.FieldInfo") Console.WriteLine() Dim Myfielda As New Myfielda() Dim Myfieldb As New Myfieldb() ' Get the Type and FieldInfo. Dim MyTypea As Type = GetType(Myfielda) Dim Myfieldinfoa As FieldInfo = _ MyTypea.GetField("m_field", BindingFlags.NonPublic Or BindingFlags.Instance) Dim MyTypeb As Type = GetType(Myfieldb) Dim Myfieldinfob As FieldInfo = _ MyTypeb.GetField("m_field", BindingFlags.NonPublic Or BindingFlags.Static) ' For the first field, get and display the name, field, and IsStatic property value. Console.WriteLine("{0} - {1}; IsStatic - {2}", MyTypea.FullName, Myfieldinfoa.GetValue(Myfielda), Myfieldinfoa.IsStatic) ' For the second field, get and display the name, field, and IsStatic property value. Console.WriteLine("{0} - {1}; IsStatic - {2}", MyTypeb.FullName, Myfieldinfob.GetValue(Myfieldb), Myfieldinfob.IsStatic) End Sub End Class
using System; using System.Reflection; // Make two fields. public class Myfielda { private string field = "A private field"; public string Field { get{return field;} set{if(field!=value){field=value;}} } } public class Myfieldb { static string field = "B private static field"; public string Field { get{return field;} set{if(field!=value){field=value;}} } } public class Myfieldinfo { public static int Main() { Console.WriteLine("\nReflection.FieldInfo"); Myfielda Myfielda = new Myfielda(); Myfieldb Myfieldb = new Myfieldb(); // Get the Type and FieldInfo. Type MyTypea = typeof(Myfielda); FieldInfo Myfieldinfoa = MyTypea.GetField("field", BindingFlags.NonPublic|BindingFlags.Instance); Type MyTypeb = typeof(Myfieldb); FieldInfo Myfieldinfob = MyTypeb.GetField("field", BindingFlags.NonPublic|BindingFlags.Static); // For the first field, get and display the name, field, and IsStatic property value. Console.Write("\n{0} - ", MyTypea.FullName); Console.Write("{0}; ", Myfieldinfoa.GetValue(Myfielda)); Console.Write("IsStatic - {0}", Myfieldinfoa.IsStatic); // For the second field get and display the name, field, and IsStatic property value. Console.Write("\n{0} - ", MyTypeb.FullName); Console.Write("{0}; ", Myfieldinfob.GetValue(Myfieldb)); Console.Write("IsStatic - {0}", Myfieldinfob.IsStatic); return 0; } }
using namespace System; using namespace System::Reflection; // Make two fields. public ref class Myfielda { private: String^ field; public: Myfielda() : field( "A private field" ) {} property String^ Field { String^ get() { return field; } void set( String^ value ) { if ( field != value ) { field = value; } } } }; public ref class Myfieldb { private: static String^ field = "B static field"; public: property String^ Field { String^ get() { return field; } void set( String^ value ) { if ( field != value ) { field = value; } } } }; int main() { Console::WriteLine( "\nReflection.FieldInfo" ); Myfielda^ myfielda = gcnew Myfielda; Myfieldb^ myfieldb = gcnew Myfieldb; // Get the Type and FieldInfo. Type^ MyTypea = Type::GetType( "Myfielda" ); FieldInfo^ Myfieldinfoa = MyTypea->GetField( "field", static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Instance) ); Type^ MyTypeb = Type::GetType( "Myfieldb" ); FieldInfo^ Myfieldinfob = MyTypeb->GetField( "field", static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Static) ); // For the first field, get and display the name, field, and IsStatic property value. Console::Write( "\n{0} - ", MyTypea->FullName ); Console::Write( "{0}; ", Myfieldinfoa->GetValue( myfielda ) ); Console::Write( "IsStatic - {0}", Myfieldinfoa->IsStatic ); // For the second field get and display the name, field, and IsStatic property value. Console::Write( "\n{0} - ", MyTypeb->FullName ); Console::Write( "{0}; ", Myfieldinfob->GetValue( myfieldb ) ); Console::Write( "IsStatic - {0}", Myfieldinfob->IsStatic ); return 0; }
import System.*; import System.Reflection.*; // Make two fields. public class MyFielda { private String field = "A private 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 } //MyFielda public class MyFieldb { private static String field = "B static 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 } //MyFieldb public class MyFieldInfo { public static void main(String[] args) { Console.WriteLine("\nReflection.FieldInfo"); MyFielda myFielda = new MyFielda(); MyFieldb myFieldb = new MyFieldb(); // Get the Type and FieldInfo. Type myTypea = Type.GetType("MyFielda"); FieldInfo myFieldInfoa = myTypea.GetField("field", BindingFlags.NonPublic | BindingFlags.Instance); Type myTypeb = Type.GetType("MyFieldb"); FieldInfo myFieldInfob = myTypeb.GetField("field", BindingFlags.NonPublic | BindingFlags.Static); // For the first field, get and display the name, field, and // IsStatic property value. Console.Write("\n{0} - ", myTypea.get_FullName()); Console.Write("{0}; ", myFieldInfoa.GetValue(myFielda)); Console.Write("IsStatic - {0}", System.Convert.ToString(myFieldInfoa.get_IsStatic())); // For the second field get and display the name, field, and // IsStatic property value. Console.Write("\n{0} - ", myTypeb.get_FullName()); Console.Write("{0}; ", myFieldInfob.GetValue(myFieldb)); Console.Write("IsStatic - {0}", System.Convert.ToString(myFieldInfob.get_IsStatic())); } //main } //MyFieldInfo
//Make two fields. public class Myfielda { private var field : String = "A private field"; public function get Field() : String { return field; } public function set Field(value : String) { if(field!=value)field=value; } } public class Myfieldb { private static var field : String = "B static field"; public static function get Field() : String { return field; } public static function set Field(value : String) { if(field!=value) field=value; } } public class Myfieldinfo { public static function Main() : void { Console.WriteLine("\nReflection.FieldInfo"); var myfielda : Myfielda = new Myfielda(); var myfieldb : Myfieldb = new Myfieldb(); //Get the Type and FieldInfo. var MyTypea : Type = Type.GetType("Myfielda"); var Myfieldinfoa : FieldInfo = MyTypea.GetField("field", BindingFlags.NonPublic|BindingFlags.Instance); var MyTypeb : Type = Type.GetType("Myfieldb"); var Myfieldinfob : FieldInfo = MyTypeb.GetField("field", BindingFlags.NonPublic|BindingFlags.Static); //For the first field, get and display the name, field, and IsStatic. Console.Write("\n{0} - ", MyTypea.FullName); Console.Write("{0}; ", Myfieldinfoa.GetValue(myfielda)); Console.Write("IsStatic - {0}", Myfieldinfoa.IsStatic); //For the second field get and display the name, field, and IsStatic. Console.Write("\n{0} - ", MyTypeb.FullName); Console.Write("{0}; ", Myfieldinfob.GetValue(myfieldb)); Console.Write("IsStatic - {0}", Myfieldinfob.IsStatic); } } Myfieldinfo.Main();
Reflection.FieldInfo

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.IsStatic プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)



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.IsStaticのページへのリンク