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

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


Type.IsNotPublic Свойство

Определение

Возвращает значение, позволяющее определить, не был ли объект Type объявлен как открытый.

public bool IsNotPublic { get; }

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

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

Реализации

Примеры

В этом примере свойство используется IsNotPublic для получения видимости типа.

using System;
using System.IO;
using System.Reflection;

class Example
{
    public static void Main()
    {
        // Get the Type and MemberInfo.
        Type t = Type.GetType("System.IO.File");
        MemberInfo[] members = t.GetMembers();
        // Get and display the DeclaringType method.
        Console.WriteLine("\nThere are {0} members in {1}.",
                          members.Length, t.FullName);
        Console.WriteLine("Is {0} non-public? {1}",
                          t.FullName, t.IsNotPublic);
    }
}
// The example displays output like the following:
//       There are 60 members in System.IO.File.
//       Is System.IO.File non-public? False

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

public class A
{
    public class B { }
    private class C { }
}

Для вложенных IsPublic классов игнорируйте результаты и IsNotPublic и обращайте внимание только на результаты IsNestedPublic и IsNestedPrivate. Выходные данные отражения для этого фрагмента кода будут следующими:

Класс IsNotPublic IsPublic IsNestedPublic IsNestedPrivate
Объект FALSE TRUE FALSE FALSE
B FALSE FALSE TRUE FALSE
C FALSE FALSE FALSE TRUE

Комментарии

Не используйте это свойство со вложенными типами; вместо этого используйте IsNestedPublic свойство .

Если текущий Type объект представляет параметр типа универсального типа, это свойство возвращает .false

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

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

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