Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
IsNested Property

Type.IsNested Property

Gets a value indicating whether the current Type object represents a type whose definition is nested inside the definition of another type.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public bool IsNested { get; }

Property Value

Type: System.Boolean
true if the Type is nested inside another type; otherwise, false.

The IsNested property returns true for all nested types, regardless of visibility. To test for nesting and visibility at the same time, use the related properties IsNestedAssembly, IsNestedFamily, IsNestedFamANDAssem, IsNestedFamORAssem, IsNestedPrivate, or IsNestedPublic.

NoteNote

The VisibilityMask enumeration member selects the visibility attributes for a type.

The following example creates an outer class with a number of nested classes that have various types of visibility. It then retrieves the value of a number of visibility-related Type properties for the parent type and each of its nested types.

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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library
Show:
© 2015 Microsoft