FieldInfo.IsPublic Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene un valor que indica si el campo es público.
public:
property bool IsPublic { bool get(); };
public bool IsPublic { get; }
member this.IsPublic : bool
Public ReadOnly Property IsPublic As Boolean
Valor de propiedad
true
si este campo es público; en caso contrario, false
.
Implementaciones
Ejemplos
En el ejemplo siguiente se devuelve un valor que indica si el campo de la clase es público o privado.
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
Comentarios
Se puede acceder a los campos públicos en todas partes en las que estén visibles sus clases correspondientes.
La IsPublic
propiedad se establece cuando se establece el FieldAttributes.Public
atributo .
Para obtener la IsPublic
propiedad , obtenga primero la clase Type
. Type
En , obtenga .FieldInfo
En , FieldInfo
obtenga la IsPublic
propiedad . Si el campo no es público, está protegido y no se puede acceder fácilmente. Para tener acceso a un campo no públicos, establezca en NonPublic
BindingFlags
, especifique BindingFlags.Instance
o BindingFlags.Static
y úselo para el GetField
método .