FieldInfo.IsFamilyOrAssembly Właściwość

Definicja

Pobiera wartość wskazującą, czy potencjalna widoczność tego pola jest opisana przez FamORAssemelement ; oznacza to, że dostęp do pola można uzyskać za pomocą klas pochodnych wszędzie tam, gdzie są, oraz przez klasy w tym samym zestawie.

C#
public bool IsFamilyOrAssembly { get; }

Wartość właściwości

truejeśli dostęp do tego pola jest dokładnie opisany przez FamORAssem; w przeciwnym razie . false

Implementuje

Przykłady

Poniższy przykład kodu definiuje pola o różnym poziomie widoczności i wyświetla wartości ich IsAssemblywłaściwości , , IsFamilyIsFamilyOrAssemblyi IsFamilyAndAssembly .

C#
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
 */

Uwagi

Jeśli pole ma FamORAssem widoczność na poziomie, może być wywoływane z dowolnego elementu członkowskiego w klasie pochodnej lub dowolnego elementu członkowskiego w tym samym zestawie, ale nie z innego typu.

Rzeczywista widoczność pola jest ograniczona przez widoczność jego typu. Właściwość IsFamilyOrAssembly może dotyczyć true pola, ale jeśli jest to pole typu zagnieżdżonego, pole nie jest widoczne poza typem zawierającym.

Widoczność pola jest dokładnie opisana przez FieldAttributes.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ż