FieldInfo.IsAssembly Właściwość

Definicja

Pobiera wartość wskazującą, czy potencjalna widoczność tego pola jest opisana przez Assemblyelement ; oznacza to, że pole jest widoczne co najwyżej dla innych typów w tym samym zestawie i nie jest widoczne dla typów pochodnych poza zestawem.

C#
public bool IsAssembly { get; }

Wartość właściwości

truejeśli widoczność tego pola jest dokładnie opisana przez Assembly; w przeciwnym razie . false

Implementuje

Przykłady

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

Rzeczywista widoczność pola jest ograniczona przez widoczność jego typu. Właściwość IsAssembly 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, FieldAttributes.Assembly jeśli jedynym modyfikatorem widoczności jest internal (Friend w Visual Basic). Ta właściwość jest false przeznaczona dla pól, które znajdują się protected internal w języku C# (Protected Friend w języku Visual Basic protected public w języku C++); użyj IsFamilyOrAssembly właściwości , aby zidentyfikować takie pola.

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ż