MethodBase.IsFamilyOrAssembly Propiedad

Definición

Obtiene un valor que indica si FamORAssem describe la visibilidad posible de este método o constructor; es decir, las clases derivadas pueden llamar al método o constructor con independencia de dónde se encuentren, así como las clases del mismo ensamblado.

C#
public bool IsFamilyOrAssembly { get; }

Valor de propiedad

true si FamORAssem describe exactamente el acceso a este método o constructor; de lo contrario, false.

Implementaciones

Ejemplos

En el ejemplo de código siguiente se definen métodos con distintos niveles de visibilidad y se muestran los valores de sus IsAssemblypropiedades , IsFamily, IsFamilyOrAssemblyy IsFamilyAndAssembly .

C#
using System;
using System.Reflection;

public class Example
{
    public void m_public() {}
    internal void m_internal() {}
    protected void m_protected() {}
    protected internal void m_protected_public() {}
    private protected void m_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 (MethodBase m in typeof(Example).GetMethods(
            BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
        {
            if (m.Name.Substring(0, 1) == "m")
            {
                Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}",
                    m.Name,
                    m.IsPublic,
                    m.IsAssembly,
                    m.IsFamily,
                    m.IsFamilyOrAssembly,
                    m.IsFamilyAndAssembly
                );
            }
        }
    }
}

/* This code example produces output similar to the following:

                              IsAssembly        IsFamilyOrAssembly
                     IsPublic          IsFamily          IsFamilyAndAssembly

m_public             True     False    False    False    False
m_internal           False    True     False    False    False
m_protected          False    False    True     False    False
m_protected_public   False    False    False    True     False
m_private_protected  False    False    False    False    True
 */

Comentarios

Si un miembro de tipo tiene MethodAttributes.FamORAssem visibilidad, se puede llamar desde cualquier miembro de una clase derivada o cualquier miembro del mismo ensamblado, pero no desde ningún otro tipo.

La visibilidad real de un método está limitada por la visibilidad de su tipo. La IsFamilyOrAssembly propiedad puede ser true para un método, pero si es un método de un tipo anidado privado, el método no está visible fuera del tipo contenedor.

La visibilidad de un método o constructor se describe exactamente si MethodAttributes.FamORAssem el modificador de visibilidad está protected internal en C# (Protected Friend en Visual Basic, protected public en C++).

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Consulte también