FieldInfo.IsPublic プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フィールドがパブリックかどうかを示す値を取得します。
public:
property bool IsPublic { bool get(); };
public bool IsPublic { get; }
member this.IsPublic : bool
Public ReadOnly Property IsPublic As Boolean
プロパティ値
フィールドがパブリックの場合は true
。それ以外の場合は false
。
実装
例
次の例では、クラスのフィールドがパブリックかプライベートかを示す値を返します。
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;
}
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;
}
}
Imports System.Reflection
' 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
Public Class Myfieldb
' Make a public field.
Public SomeField As String = "public field"
End Class
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
注釈
パブリック フィールドは、対応するクラスが表示されているすべての場所でアクセスできます。
IsPublic
属性が設定されると、 FieldAttributes.Public
プロパティが設定されます。
プロパティを IsPublic
取得するには、まず クラス Type
を取得します。 から、 Type
を取得します FieldInfo
。 から、 FieldInfo
プロパティを取得します IsPublic
。 フィールドがパブリック以外の場合は保護され、すぐにアクセスすることはできません。 非パブリック フィールドにアクセスするには、 を に設定BindingFlags
し、 または BindingFlags.Static
のいずれかをBindingFlags.Instance
指定し、 メソッドにGetField
これを使用NonPublic
します。
適用対象
こちらもご覧ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET