MethodBase.IsFamilyOrAssembly Właściwość

Definicja

Pobiera wartość wskazującą, czy potencjalna widoczność tej metody lub konstruktora jest opisana przez FamORAssemmetodę , czyli metodę lub konstruktor może być wywoływana przez klasy pochodne wszędzie tam, gdzie są, i przez klasy w tym samym zestawie.

C#
public bool IsFamilyOrAssembly { get; }

Wartość właściwości

truejeśli dostęp do tej metody lub konstruktora jest dokładnie opisany przez FamORAssem; w przeciwnym razie . false

Implementuje

Przykłady

Poniższy przykład kodu definiuje metody o różnych poziomach widoczności i wyświetla wartości ich IsAssemblywłaściwości , , IsFamilyIsFamilyOrAssemblyi 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
 */

Uwagi

Jeśli składowa typu ma MethodAttributes.FamORAssem widoczność, może być wywoływana z dowolnego elementu członkowskiego w klasie pochodnej lub dowolnego elementu członkowskiego w tym samym zestawie, ale nie z żadnego innego typu.

Rzeczywista widoczność metody jest ograniczona przez widoczność jej typu. Właściwość IsFamilyOrAssembly może dotyczyć true metody, ale jeśli jest metodą prywatnego typu zagnieżdżonego, metoda nie jest widoczna poza typem zawierającym.

Widoczność metody lub konstruktora jest dokładnie opisana przez MethodAttributes.FamORAssem to, czy modyfikator widoczności znajduje protected internal się w języku C# (Protected Friend w Języku Visual Basic w języku protected public C++).

Dotyczy

Produkt Wersje
.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

Zobacz też