FieldInfo.IsStatic 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
정적 필드인지 여부를 나타내는 값을 가져옵니다.
public:
property bool IsStatic { bool get(); };
public bool IsStatic { get; }
member this.IsStatic : bool
Public ReadOnly Property IsStatic As Boolean
속성 값
이 필드가 정적 필드이면 true
이고, 그렇지 않으면 false
입니다.
구현
예제
다음 예제에서는 지정된 필드가 정적인지 여부를 확인하고 결과를 표시합니다.
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;
}
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;
}
}
Imports System.Reflection
' 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
이 코드의 결과는 다음과 같습니다.
Reflection.FieldInfo
Myfielda - A private field; IsStatic - False
Myfieldb - B static field; IsStatic - True
설명
필드가 정적이면 필드의 복사본 하나가 형식의 모든 인스턴스에서 공유됩니다.
속성은 IsStatic
특성이 FieldAttributes.Static
설정되면 설정됩니다.
속성을 얻으려면 IsStatic
먼저 클래스 Type
를 가져옵니다. 에서 를 Type
가져옵니다 FieldInfo
.
FieldInfo
에서 속성을 가져옵니다IsStatic
. 공용이 아닌 필드에 액세스하려면 메서드에서 를 로 GetField
설정하고 NonPublic
BindingFlags
접근성을 또는 Static
로 Instance
설정합니다.
적용 대상
추가 정보
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET