Прочитать на английском

Поделиться через


FieldInfo.IsPublic Свойство

Определение

Возвращает значение, указывающее, является ли поле открытым.

public bool IsPublic { get; }

Значение свойства

Значение true, если поле является открытым; в противном случае — значение false.

Реализации

Примеры

В следующем примере возвращается значение, указывающее, является ли поле класса открытым или закрытым.

using System;
using System.Reflection;

 // Make two fields.
public
    class Myfielda // private
{
    private string SomeField = "private field";
    public string Field
    {
        get{return SomeField;}
    }
}

public
    class Myfieldb // public
{
    public string SomeField = "public field";
}

public
    class Myfieldinfo
{
    public static int Main()
    {
        Console.WriteLine("\nReflection.FieldInfo");
        Myfielda Myfielda = new Myfielda();
        Myfieldb Myfieldb = new Myfieldb();

        // Get the Type and FieldInfo.
        Type MyTypea = typeof(Myfielda);
        FieldInfo Myfieldinfoa = MyTypea.GetField("SomeField",
            BindingFlags.NonPublic|BindingFlags.Instance);
        Type MyTypeb = typeof(Myfieldb);
        FieldInfo Myfieldinfob = MyTypeb.GetField("SomeField");

        // Get and display the IsPublic and IsPrivate property values.
        Console.Write("\n{0}.", MyTypea.FullName);
        Console.Write("{0} - ", Myfieldinfoa.Name);
        Console.Write("{0}", Myfielda.Field);
        Console.Write("\n   IsPublic = {0}", Myfieldinfoa.IsPublic);
        Console.Write("\n   IsPrivate = {0}", Myfieldinfoa.IsPrivate);

        Console.Write("\n{0}.", MyTypeb.FullName);
        Console.Write("{0} - ", Myfieldinfob.Name);
        Console.Write("{0};", Myfieldb.SomeField);
        Console.Write("\n   IsPublic = {0}", Myfieldinfob.IsPublic);
        Console.Write("\n   IsPrivate = {0}", Myfieldinfob.IsPrivate);

        return 0;
    }
}

Комментарии

Открытые поля доступны везде, где видны соответствующие им классы.

Свойство IsPublic задается при установке атрибута FieldAttributes.Public .

Чтобы получить IsPublic свойство , сначала получите класс Type. TypeИз получите FieldInfo. FieldInfoИз получите IsPublic свойство . Если поле отличается от открытого, оно защищено и не может быть легко доступно. Чтобы получить доступ к непубликому полю, присвойте параметру BindingFlagsNonPublicзначение , укажите BindingFlags.Instance или BindingFlags.Staticиспользуйте этот параметр для GetField метода .

Применяется к

Продукт Версии
.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
.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

См. также раздел