FieldInfo.IsFamilyAndAssembly 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 la visibilidad de este campo se describe mediante FamANDAssem; es decir, se puede tener acceso al campo desde clases derivadas, pero solo si están en el mismo ensamblado.
public:
property bool IsFamilyAndAssembly { bool get(); };
public bool IsFamilyAndAssembly { get; }
member this.IsFamilyAndAssembly : bool
Public ReadOnly Property IsFamilyAndAssembly As Boolean
Valor de propiedad
true es si el acceso a este campo se describe exactamente mediante FamANDAssem; de lo contrario, falsees .
Implementaciones
Ejemplos
En el ejemplo de código siguiente se definen campos con distintos niveles de visibilidad y se muestran los valores de sus IsAssemblypropiedades , IsFamily, IsFamilyOrAssemblyy IsFamilyAndAssembly .
using System;
using System.Reflection;
public class Example
{
public int f_public;
internal int f_internal;
protected int f_protected;
protected internal int f_protected_public;
private protected int f_private_protected;
public static void Main()
{
Console.WriteLine("\n{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly");
Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}\n",
"", "IsPublic", "IsFamily", "IsFamilyAndAssembly");
foreach (FieldInfo f in typeof(Example).GetFields(
BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
{
Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}",
f.Name,
f.IsPublic,
f.IsAssembly,
f.IsFamily,
f.IsFamilyOrAssembly,
f.IsFamilyAndAssembly
);
}
}
}
/* This code example produces output similar to the following:
IsAssembly IsFamilyOrAssembly
IsPublic IsFamily IsFamilyAndAssembly
f_public True False False False False
f_internal False True False False False
f_protected False False True False False
f_protected_public False False False True False
f_private_protected False False False False True
*/
Imports System.Reflection
Public class Example
Public f_Public As Integer
Friend f_Friend As Integer
Protected f_Protected As Integer
Protected Friend f_Protected_Friend As Integer
Private Protected f_Private_Protected() As Integer
Public Shared Sub Main()
Console.WriteLine(vbCrLf & _
"{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly")
Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}" & vbCrLf, _
"", "IsPublic", "IsFamily", "IsFamilyAndAssembly")
For Each f As FieldInfo In GetType(Example).GetFields( _
BindingFlags.Instance Or BindingFlags.NonPublic Or BindingFlags.Public)
Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", _
f.Name, _
f.IsPublic, _
f.IsAssembly, _
f.IsFamily, _
f.IsFamilyOrAssembly, _
f.IsFamilyAndAssembly _
)
Next
End Sub
End Class
' This code example produces output similar to the following:
'
' IsAssembly IsFamilyOrAssembly
' IsPublic IsFamily IsFamilyAndAssembly
'
'f_Public True False False False False
'f_Friend False True False False False
'f_Protected False False True False False
'f_Protected_Friend False False False True False
'f_Private_Protected False False False False True
Comentarios
Si un campo tiene FamANDAssem visibilidad de nivel, se puede llamar desde cualquier miembro de una clase derivada que también esté en el mismo ensamblado, pero no desde ningún otro tipo.
La visibilidad de un campo se describe exactamente mediante FieldAttributes.FamANDAssem si el modificador de visibilidad es private protected en C# o Private Protected en Visual Basic.