FieldInfo::IsStatic Property
Gets a value indicating whether the field is static.
Assembly: mscorlib (in mscorlib.dll)
Implements
_FieldInfo::IsStaticWhen a field is static, one copy of the field is shared by all instances of the type.
The IsStatic property is set when the FieldAttributes.Static attribute is set.
To get the IsStatic property, first get the class Type. From the Type, get the FieldInfo. From the FieldInfo, get the IsStatic property. To access a non-public field, set the BindingFlags to NonPublic in the GetField method and set the accessibility to Instance or Static.
The following example determines whether the specified field is static and displays the result.
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; }
This code produces the following output:
Reflection.FieldInfo
Myfielda - A private field; IsStatic - False
Myfieldb - B static field; IsStatic - True
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1