Type.IsNestedFamORAssem 属性

定义

获取一个值,通过该值指示 Type 是否是嵌套的并且只对属于它自己的家族或属于它自己的程序集的类可见。

public:
 property bool IsNestedFamORAssem { bool get(); };
public bool IsNestedFamORAssem { get; }
member this.IsNestedFamORAssem : bool
Public ReadOnly Property IsNestedFamORAssem As Boolean

属性值

如果 true 是嵌套的并且只对属于它自己的家族或属于它自己的程序集的类可见,则为 Type;否则为 false

实现

示例

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

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
' Create a Class with a number of nested Classes.
Public Class OuterClass
    Private Class PrivateClass
    End Class

    Protected Class ProtectedClass
    End Class

    Friend Class InternalClass
    End Class

    Protected Friend Class ProtectedInternalClass
    End Class

    Public Class PublicClass
    End Class

    Public Shared Sub Main()
        ' Create an array of Type objects for all the Classes.
        Dim types() As Type = { GetType(OuterClass),
                                GetType(OuterClass.PublicClass),
                                GetType(OuterClass.PrivateClass),
                                GetType(OuterClass.ProtectedClass),
                                GetType(OuterClass.InternalClass),
                                GetType(OuterClass.ProtectedInternalClass) }
        ' Display the property values of each nested Class.
        For Each type In types
           Console.WriteLine("{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)
           Console.WriteLine()
        Next
    End Sub
End Class
' 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

注解

如果类型的可见性在 protected internal C# 或 Protected Friend Visual Basic 中,则 IsNestedFamORAssem 属性返回 true

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

TypeAttributes.VisibilityMask 选择可见性属性。

对象的 Type 系列定义为完全相同 Type 及其子类型的所有对象。

适用于

另请参阅