_FieldInfo.IsPrivate プロパティ
アセンブリ: 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.IsPrivate プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)
構文
解説
プライベート フィールドにアクセスできるのは、メンバ関数だけです。
IsPrivate プロパティは、FieldAttributes.Private 属性が設定されたときに設定されます。
IsPrivate プロパティを取得するには、最初に Type クラスを取得します。そして、その Type から FieldInfo を取得します。最後に、FieldInfo から IsPrivate プロパティを取得します。非パブリック フィールドにアクセスするには、BindingFlags を NonPublic に設定し、GetField メソッドで Static または Instance を設定します。
クラスのフィールドがプライベートかどうかを示す値を返す例を次に示します。
Imports System Imports System.Reflection Imports Microsoft.VisualBasic Class [MyClass] Private myField As String Public myArray() As String = {"New York", "New Jersey"} Sub New() myField = "Microsoft" End Sub 'New ReadOnly Property GetField() As String Get Return myField End Get End Property End Class '[MyClass] Class FieldInfo_IsPrivate Public Shared Sub Main() Try ' Gets the type of MyClass. Dim myType As Type = GetType([MyClass]) ' Gets the field information of MyClass. Dim myFields As FieldInfo() = myType.GetFields((BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Instance)) Console.WriteLine(ControlChars.Cr & "Displaying whether the fields of {0} are private or not:" & ControlChars.Cr, myType) Console.WriteLine() Dim i As Integer For i = 0 To myFields.Length - 1 ' Check whether the field is private or not. If myFields(i).IsPrivate Then Console.WriteLine("{0} is a private field.", myFields(i).Name) Else Console.WriteLine("{0} is not a private field.", myFields(i).Name) End If Next i Catch e As Exception Console.WriteLine("Exception : {0} ", e.Message.ToString()) End Try End Sub 'Main End Class 'FieldInfo_IsPrivate
using System; using System.Reflection; class MyClass { private string myField; public string[] myArray = new string[] {"New York", "New Jersey"}; MyClass() { myField = "Microsoft"; } string GetField { get { return myField; } } } class FieldInfo_IsPrivate { public static void Main() { try { // Gets the type of MyClass. Type myType = typeof(MyClass); // Gets the field information of MyClass. FieldInfo[] myFields = myType.GetFields(BindingFlags.NonPublic |BindingFlags.Public |BindingFlags.Instance); Console.WriteLine("\nDisplaying whether the fields of {0} are private or not:\n", myType); for(int i = 0; i < myFields.Length; i++) { // Check whether the field is private or not. if(myFields[i].IsPrivate) Console.WriteLine("{0} is a private field." , myFields[i].Name); else Console.WriteLine("{0} is not a private field.", myFields[i].Name); } } catch(Exception e) { Console.WriteLine("Exception : {0} " , e.Message); } } }
using namespace System; using namespace System::Reflection; ref class MyClass { private: String^ myField; public: array<String^>^myArray; MyClass() { myField = "Microsoft"; array<String^>^s = {"New York","New Jersey"}; myArray = s; } property String^ GetField { String^ get() { return myField; } } }; int main() { try { // Gets the type of MyClass. Type^ myType = MyClass::typeid; // Gets the field information of MyClass. array<FieldInfo^>^myFields = myType->GetFields( static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Public | BindingFlags::Instance) ); Console::WriteLine( "\nDisplaying whether the fields of {0} are private or not:\n", myType ); for ( int i = 0; i < myFields->Length; i++ ) { // Check whether the field is private or not. if ( myFields[ i ]->IsPrivate ) Console::WriteLine( " {0} is a private field.", myFields[ i ]->Name ); else Console::WriteLine( " {0} is not a private field.", myFields[ i ]->Name ); } } catch ( Exception^ e ) { Console::WriteLine( "Exception : {0} ", e->Message ); } }
import System.*; import System.Reflection.*; class MyClass { private String myField; public String myArray[] = new String[] { "New York", "New Jersey" }; MyClass() { myField = "Microsoft"; } //MyClass /** @property */ String get_GetField() { return myField; } // get_GetField } //MyClass class FieldInfoIsPrivate { public static void main(String[] args) { try { // Gets the type of MyClass. Type myType = MyClass.class.ToType(); // Gets the field information of MyClass. FieldInfo myFields[] = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); Console.WriteLine("\nDisplaying whether the fields of {0} are" + " private or not:\n", myType); for (int i = 0; i < myFields.length; i++) { // Check whether the field is private or not. if (myFields[i].get_IsPrivate()) { Console.WriteLine("{0} is a private field." , myFields[i].get_Name()); } else { Console.WriteLine("{0} is not a private field.", myFields[i].get_Name()); } } } catch (System.Exception e) { Console.WriteLine("Exception : {0} ", e.get_Message()); } } //main } //FieldInfoIsPrivate
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.IsPrivate プロパティのページへのリンク