FieldInfo.IsPublic プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)
構文
解説
パブリック フィールドには、対応するクラスが可視ならばどこからでもアクセスできます。
IsPublic プロパティは、FieldAttributes.Public 属性が設定されたときに設定されます。
IsPublic プロパティを取得するには、最初に Type クラスを取得します。そして、その Type から FieldInfo を取得します。最後に、FieldInfo から IsPublic プロパティを取得します。フィールドがパブリック以外の場合は、そのフィールドは保護されているため、簡単にはアクセスできません。非パブリック フィールドにアクセスするには、BindingFlags を NonPublic に設定し、BindingFlags.Instance または BindingFlags.Static を指定して、これを GetField メソッドで使用します。
クラスのフィールドがパブリックかまたはプライベートかを示す値を返す例を次に示します。
Imports System Imports System.Reflection Imports Microsoft.VisualBasic ' Make two fields. Public Class Myfielda ' Make a private field. Private SomeField As String = "private field" Public ReadOnly Property Field() As String Get Return SomeField End Get End Property End Class 'Myfielda Public Class Myfieldb ' Make a public field. Public SomeField As String = "public field" End Class 'Myfieldb Public Class Myfieldinfo Public Shared Function Main() As Integer 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("SomeField", _ BindingFlags.NonPublic Or BindingFlags.Instance) Dim MyTypeb As Type = GetType(Myfieldb) Dim Myfieldinfob As FieldInfo = MyTypeb.GetField("SomeField") ' Get and display the IsPublic and IsPrivate property values. Console.WriteLine("{0}.{1} - {2}", MyTypea.FullName, Myfieldinfoa.Name, _ Myfielda.Field) Console.WriteLine(" IsPublic = {0}", Myfieldinfoa.IsPublic) Console.WriteLine(" IsPrivate = {0}", Myfieldinfoa.IsPrivate) Console.WriteLine() Console.WriteLine("{0}.{1} - {2}", MyTypeb.FullName, Myfieldinfob.Name, _ Myfieldb.SomeField) Console.WriteLine(" IsPublic = {0}", Myfieldinfob.IsPublic) Console.WriteLine(" IsPrivate = {0}", Myfieldinfob.IsPrivate) Return 0 End Function 'Main End Class 'Myfieldinfo
using System; using System.Reflection; // Make two fields. public class Myfielda // private { private string SomeField = "private field"; public string Field { get{return SomeField;} } } public class Myfieldb // public { public string SomeField = "public field"; } 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("SomeField", BindingFlags.NonPublic|BindingFlags.Instance); Type MyTypeb = typeof(Myfieldb); FieldInfo Myfieldinfob = MyTypeb.GetField("SomeField"); // Get and display the IsPublic and IsPrivate property values. Console.Write("\n{0}.", MyTypea.FullName); Console.Write("{0} - ", Myfieldinfoa.Name); Console.Write("{0}", Myfielda.Field); Console.Write("\n IsPublic = {0}", Myfieldinfoa.IsPublic); Console.Write("\n IsPrivate = {0}", Myfieldinfoa.IsPrivate); Console.Write("\n{0}.", MyTypeb.FullName); Console.Write("{0} - ", Myfieldinfob.Name); Console.Write("{0};", Myfieldb.SomeField); Console.Write("\n IsPublic = {0}", Myfieldinfob.IsPublic); Console.Write("\n IsPrivate = {0}", Myfieldinfob.IsPrivate); return 0; } }
using namespace System; using namespace System::Reflection; // Make two fields. // private public ref class Myfielda { private: String^ SomeField; public: Myfielda() : SomeField( "private field" ) {} property String^ Field { String^ get() { return SomeField; } } }; // public public ref class Myfieldb { public: String^ SomeField; Myfieldb() : SomeField( "public field" ) {} property String^ Field { String^ get() { return SomeField; } } }; 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( "SomeField", static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Instance) ); Type^ MyTypeb = Type::GetType( "Myfieldb" ); FieldInfo^ Myfieldinfob = MyTypeb->GetField( "SomeField" ); // Get and display the IsPublic and IsPrivate property values. Console::Write( "\n{0}.", MyTypea->FullName ); Console::Write( "{0} - ", Myfieldinfoa->Name ); Console::Write( "{0}", myfielda->Field ); Console::Write( "\n IsPublic = {0}", Myfieldinfoa->IsPublic ); Console::Write( "\n IsPrivate = {0}", Myfieldinfoa->IsPrivate ); Console::Write( "\n{0}.", MyTypeb->FullName ); Console::Write( "{0} - ", Myfieldinfob->Name ); Console::Write( "{0};", myfieldb->Field ); Console::Write( "\n IsPublic = {0}", Myfieldinfob->IsPublic ); Console::Write( "\n IsPrivate = {0}", Myfieldinfob->IsPrivate ); return 0; }
import System.*; import System.Reflection.*; // Make two fields. public class MyFielda { // private private String someField = "private field"; /** @property */ public String get_Field() { return someField; } //get_Field } //MyFielda public class MyFieldb { // public public String someField = "public field"; /** @property */ public String get_Field() { return someField; } //get_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("someField", BindingFlags.NonPublic | BindingFlags.Instance); Type myTypeb = Type.GetType("MyFieldb"); FieldInfo myFieldInfob = myTypeb.GetField("someField"); // Get and display the IsPublic and IsPrivate property values. Console.Write("\n{0}.", myTypea.get_FullName()); Console.Write("{0} - ", myFieldInfoa.get_Name()); Console.Write("{0}", myFielda.get_Field()); Console.Write("\n IsPublic = {0}", System.Convert.ToString(myFieldInfoa.get_IsPublic())); Console.Write("\n IsPrivate = {0}", System.Convert.ToString(myFieldInfoa.get_IsPrivate())); Console.Write("\n{0}.", myTypeb.get_FullName()); Console.Write("{0} - ", myFieldInfob.get_Name()); Console.Write("{0};", myFieldb.get_Field()); Console.Write("\n IsPublic = {0}", System.Convert.ToString(myFieldInfob.get_IsPublic())); Console.Write("\n IsPrivate = {0}", System.Convert.ToString(myFieldInfob.get_IsPrivate())); } //main } //MyFieldInfo
import System; import System.Reflection; // Make two fields. // Make a private field. public class Myfielda { private var field : String = "private field"; public function get Field() : String { return field; } } // Make a public field. public class Myfieldb { public var field : String = "public field"; public function get Field() : String { return field; } } 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.Instance|BindingFlags.NonPublic); var MyTypeb : Type = Type.GetType("Myfieldb"); var Myfieldinfob : FieldInfo = MyTypeb.GetField("field"); //Get and Display the IsPublic and IsPrivate. Console.Write("\n{0}.", MyTypea.FullName); Console.Write("{0} - ", Myfieldinfoa.Name); Console.Write("{0};", myfielda.Field); Console.Write("\n IsPublic = {0}; ",Myfieldinfoa.IsPublic); Console.Write("\n IsPrivate = {0}; ",Myfieldinfoa.IsPrivate); Console.Write("\n{0}.", MyTypeb.FullName); Console.Write("{0} - ", Myfieldinfob.Name); Console.Write("{0};", myfieldb.Field); Console.Write("\n IsPublic = {0}; ", Myfieldinfob.IsPublic); Console.Write("\n IsPrivate = {0}; ",Myfieldinfob.IsPrivate); } } Myfieldinfo.Main();
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.IsPublic プロパティ
アセンブリ: 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.IsPublicのページへのリンク