Type.IsNotPublic 属性

定义

获取一个值,该值指示 Type 是否声明为公共类型。

C#
public bool IsNotPublic { get; }

属性值

如果 true 未声明为公共类型且不是嵌套类型,则为 Type;否则为 false

实现

示例

此示例使用 IsNotPublic 属性获取类型的可见性。

C#
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 用于嵌套类。

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

对于嵌套类,请忽略 和 IsNotPublic 的结果IsPublic,并仅关注 和 IsNestedPrivate的结果IsNestedPublic。 此代码片段的反射输出如下所示:

IsNotPublic IsPublic IsNestedPublic IsNestedPrivate
A 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

另请参阅