Type.IsNestedPrivate 属性

定义

获取一个值,通过该值指示 Type 是否是嵌套的并声明为私有。

C#
public bool IsNestedPrivate { get; }

属性值

Boolean

如果 true 是嵌套的并声明为私有,则为 Type;否则为 false

实现

示例

以下示例创建一个外部类,该类具有许多具有各种类型的可见性的嵌套类。 然后,它检索父类型及其每个嵌套类型的许多与可见性 Type 相关的属性的值。

C#
using System;

// Create a class with a number of nested classes.
public class OuterClass
{
    private class PrivateClass
    {}

    protected class ProtectedClass
    {}

    internal class InternalClass
    {}

    protected internal class ProtectedInternalClass
    {}

    public class PublicClass
    {}

    public static void Main()
    {
        // Create an array of Type objects for all the classes.
        Type[] types = { typeof(OuterClass),
                         typeof(OuterClass.PublicClass),
                         typeof(OuterClass.PrivateClass),
                         typeof(OuterClass.ProtectedClass),
                         typeof(OuterClass.InternalClass),
                         typeof(OuterClass.ProtectedInternalClass) };
        // Display the property values of each nested class.
        foreach (var type in types) {
           Console.WriteLine("\n{0} property values:", type.Name);
           Console.WriteLine("   Public Class: {0}", type.IsPublic);
           Console.WriteLine("   Not a Public Class: {0}", type.IsNotPublic);
           Console.WriteLine("   Nested Class: {0}", type.IsNested);
           Console.WriteLine("   Nested Private Class: {0}", type.IsNestedPrivate);
           Console.WriteLine("   Nested Internal Class: {0}", type.IsNestedAssembly);
           Console.WriteLine("   Nested Protected Class: {0}", type.IsNestedFamily);
           Console.WriteLine("   Nested Family Or Assembly Class: {0}", type.IsNestedFamORAssem);
           Console.WriteLine("   Nested Family And Assembly Class: {0}", type.IsNestedFamANDAssem);
           Console.WriteLine("   Nested Public Class: {0}", type.IsNestedPublic);
        }
    }
}
// The example displays the following output:
//    OuterClass property values:
//       Public Class: True
//       Not a Public Class: False
//       Nested Class: False
//       Nested Private Class: False
//       Nested Internal Class: False
//       Nested Protected Class: False
//       Nested Family Or Assembly Class: False
//       Nested Family And Assembly Class: False
//       Nested Public Class: False
//
//    PublicClass property values:
//       Public Class: False
//       Not a Public Class: False
//       Nested Class: True
//       Nested Private Class: False
//       Nested Internal Class: False
//       Nested Protected Class: False
//       Nested Family Or Assembly Class: False
//       Nested Family And Assembly Class: False
//       Nested Public Class: True
//
//    PrivateClass property values:
//       Public Class: False
//       Not a Public Class: False
//       Nested Class: True
//       Nested Private Class: True
//       Nested Internal Class: False
//       Nested Protected Class: False
//       Nested Family Or Assembly Class: False
//       Nested Family And Assembly Class: False
//       Nested Public Class: False
//
//    ProtectedClass property values:
//       Public Class: False
//       Not a Public Class: False
//       Nested Class: True
//       Nested Private Class: False
//       Nested Internal Class: False
//       Nested Protected Class: True
//       Nested Family Or Assembly Class: False
//       Nested Family And Assembly Class: False
//       Nested Public Class: False
//
//    InternalClass property values:
//       Public Class: False
//       Not a Public Class: False
//       Nested Class: True
//       Nested Private Class: False
//       Nested Internal Class: True
//       Nested Protected Class: False
//       Nested Family Or Assembly Class: False
//       Nested Family And Assembly Class: False
//       Nested Public Class: False
//
//    ProtectedInternalClass property values:
//       Public Class: False
//       Not a Public Class: False
//       Nested Class: True
//       Nested Private Class: False
//       Nested Internal Class: False
//       Nested Protected Class: False
//       Nested Family Or Assembly Class: True
//       Nested Family And Assembly Class: False
//       Nested Public Class: False

注解

如果当前 Type 表示泛型类型的类型参数,则此属性始终返回 false

TypeAttributes.VisibilityMask 选择可见性属性。

适用于

产品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.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
.NET Standard 2.0, 2.1

另请参阅