FieldInfo.IsPublic Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém um valor que indica se o campo é ou não público.
public:
property bool IsPublic { bool get(); };
public bool IsPublic { get; }
member this.IsPublic : bool
Public ReadOnly Property IsPublic As Boolean
Valor da propriedade
true
se esse campo for público; caso contrário, false
.
Implementações
Exemplos
O exemplo a seguir retorna um valor que indica se o campo da classe é público ou privado ou não.
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
Comentários
Os campos públicos são acessíveis em todos os lugares em que suas classes correspondentes estão visíveis.
A IsPublic
propriedade é definida quando o FieldAttributes.Public
atributo é definido.
Para obter a IsPublic
propriedade , primeiro obtenha a classe Type
. Type
No , obtenha o FieldInfo
. FieldInfo
No , obtenha a IsPublic
propriedade . Se o campo não for público, ele será protegido e não poderá ser acessado prontamente. Para acessar um campo não público, defina como NonPublic
BindingFlags
, especifique BindingFlags.Instance
ou BindingFlags.Static
e use-o para o GetField
método .